Releases: datakaveri/ogc-resource-server
v2.0.0
Version Summary
Version Number : v2.0.0 [tag: v2.0.0]
Date: 14-November-2024
Projects / Repos Included in this release: OGC Resource Server, DX Deployment and installation, DX Documentation
Release Summary :
Centre of Data for Public Good (CDPG) | OGC Resource Server v2.0.0 is released with enhanced features.
Highlights:
- Added support for vector tilesets
- Implemented OGC coverages Core conformance
- Implemented STAC Items and Items Search
- Added the following processes
- append dynamic feature data to an existing OGC feature collection
- add tiles metadata to the database for an existing tileset in S3
- generate a pre-signed URL to upload data into S3
- Incorporated auditing flows for Tiles API
- Added support for provider-delegate authorization for process execution
- Refactored authentication to use handlers and changed token header to
Authorization: Bearer ...
- Updated the client SDK for OGC and STAC
- Added HTML versions of API docs
- Added detailed server documentation
- Enhanced Software Testing with RESTAssured
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:
Prerequisites
- Make a config file based on the template in example-config/config-example.json
- Set up AWS S3 for serving tiles and STAC assets
- Set up PostGIS for storing information related to geo spatial data
- Set up RabbitMQ for publishing the auditing data
- Set up the database using Flyway
AWS S3 setup
- AWS S3 is used to serve map tiles as well as STAC asset files
- An S3 bucket can be set up by following the AWS S3 documentation, after which the S3 bucket name, region name, access key and secret key can be added to the config.
PostGIS
- PostGIS is an extension for PostgreSQL that adds support for geographic objects, allowing users to store and query spatial data.
- To setup PostgreSQL refer setup and installation instructions available here
Table Name | Purpose |
---|---|
collections_details | To store metadata about collections, including title, description, and bounding box |
processes_table | To store details of processes including input, output, and execution modes |
ri_details | To store information related to resource instance (RI) details, including role and access type |
roles | To store user roles, such as provider, consumer, or delegate |
jobs_table | To store job details, including status, type, progress, and timestamps, related to different processes |
collection_type | To store types associated with collections, based on the type column from collections_details |
tilematrixset_metadata | To store metadata for tile matrix sets, including scale, cell size, and matrix dimensions |
tilematrixsets_relation | To store the relation between collections and tile matrix sets |
collection_supported_crs | To store the Coordinate Reference Systems (CRS) supported by specific collections |
crs_to_srid | To map Coordinate Reference Systems (CRS) to Spatial Reference Identifiers (SRID) |
stac_collections_assets | To store assets linked to collections, such as thumbnails, data, and metadata, including their size, type, and role |
collection_coverage | To store the coverage schema and associated hrefs related to collections, helping define the spatial/temporal extent of collections |
Auditing
- Auditing is done using the DX Auditing Server which uses Postgres for storing the audit logs for OGC Resource Server
- The schema for auditing table in PostgreSQL is present here - postgres auditing table schema
Table Name | Purpose | DB |
---|---|---|
auditing_ogc | To store audit logs for operations in the OGC Resource Server | PostgreSQL |
RabbitMQ
- RabbitMQ is used to push the logs which is consumed by the auditing server
- To setup RabbitMQ refer the setup and installation instructions available here
- After deployment of RabbitMQ, we need to ensure that there are certain prerequisites met. Incase if it is not met, please login to RabbitMQ management portal using the RabbitMQ management UI and create a the following
Create vHost
Type | Name | Details |
---|---|---|
vHost | IUDX-INTERNAL | Create a vHost in RabbitMQ |
Create Exchange
Exchange Name | Type of exchange | features | Details |
---|---|---|---|
auditing | direct | durable | Create an exchange in vHost IUDX-INTERNAL to allow audit information to be published |
Create Queue and Bind to Exchange
Exchange Name | Queue Name | vHost | routing key | Details |
---|---|---|---|---|
auditing | direct | durable | # | Create a queue in vHost IUDX-INTERNAL to allow audit information to be consumed. Ensure that the queue is binded to the auditing exchange |
Database Migration using Flyway
- Database flyway migrations help in updating the schema, permissions, grants, triggers etc., with the latest version
- Each flyway schema file is versioned with the format
V<majorVersion>_<minorVersion>__<description>.sql
, ex :V1_1__init-tables.sql
to manage the database schema and handle migrations - The migration files are located at src/main/resources/db/migrations. The following pre-requisites are needed before running
flyway
:- An admin user - a database user who has created schema/table privileges for the database. It can be the super user.
- A normal user - this is the database user that will be configured to make queries from the server
(e.g.CREATE USER ogc WITH PASSWORD 'randompassword';
)
flyway.conf must be updated with the required data.
flyway.url
- the database connection URLflyway.user
- the username of the admin userflyway.password
- the password of the admin userflyway.schemas
- the name of the schema under which the tables are createdflyway.placeholders.ogcUser
- the username of the server user
Please refer here for more information about Flyway config parameters.
After this, the info
command can be run to test the config. Then, the migrate
command can be run to set up the database. At the /ogc-resource-server
directory, run
mvn flyway:info -Dflyway.configFiles=flyway.conf
mvn flyway:migrate -Dflyway.configFiles=flyway.conf
Installation Steps
Maven based execution
- Install Java 11 and maven
- Set Environment variables
export LOG_LEVEL=INFO
- Use the maven exec plugin based starter to start the server
mvn clean compile exec:java@ogc-resource-server
- The server will be up on port 8080. To change the port, add
httpPort:<desired_port_number>
to the config in theApiServerVerticle
module. See configs/config-example.json for an example.
JAR based execution
- Install Java 11 and maven
- Set Environment variables
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/
directoryogc-resource-server-dev-0.0.1-SNAPSHOT-fat.jar
- non-clustered v...
v1.0.1
Version Summary
Version Number : v1.0.1 [tag: v1.0.1]
Date: 14-May-2024
Projects / Repos Included in this release: OGC Resource Server, IUDX Deployment and installation, IUDX's Documentation
Release Summary :
India Urban Data Exchange (IUDX) | OGC Resource Server v1.0.1 is released with enhanced features.
Highlights:
- Added process to onboard OGC Feature data
- Incorporated auditing flows and DX metering APIs
- Added a client SDK for OGC, STAC and DX metering APIs
- Enhanced Software Testing with RESTAssured
Test Reports:
Please find the release test details and reports here
What's Changed
- Execute api flow by @gopal-mahajan in #78
- refactor by @gopal-mahajan in #91
- Added OpenAPI validation for query parameters by @code-akki in #53
- changed pool connection for metering by @ankitmashu in #90
- Updated directory path for fetching tiles in S3 by @code-akki in #92
- [DRAFT] OpenAPI Spec creator by @ThorodanBrom in #69
- Test updates by @ThorodanBrom in #94
- logs-added-to-test by @gopal-mahajan in #95
- spec-generation by @gopal-mahajan in #96
- refactor-ri-query by @gopal-mahajan in #97
- ogr-2-ogr-cmd-refactor by @gopal-mahajan in #98
- dummy-test by @gopal-mahajan in #100
- dummy-refactor by @gopal-mahajan in #101
- update OAS_PATH to URI Format by @tanvi029 in #99
- Revert "dummy-refactor" by @ThorodanBrom in #102
- Revert "dummy-test" by @ThorodanBrom in #103
- Revert "Update AuthHandler.java - add stack trace to debug" by @ThorodanBrom in #104
- Bug-Fix : Fix OGC features spec generation case when collection has no attributes by @ThorodanBrom in #105
- blocking-refactored by @gopal-mahajan in #106
- script-for-column-update by @gopal-mahajan in #109
- Fake Token Builder by @tanvi029 in #108
- refactor-message by @gopal-mahajan in #107
- bbox-updated by @gopal-mahajan in #110
- [DRAFT] Added support for multiple itemTypes for Features by @code-akki in #111
- Fix get collections info query for OGC Feature spec generation after introduction of
collection_type
table by @ThorodanBrom in #113 - BUG FIX: Updated /collections/{collectionId} API by @code-akki in #114
- collection-type-table-added by @gopal-mahajan in #115
- script for auditing table by @ankitmashu in #117
- Updated auditing flows by @ThorodanBrom in #116
- RestAssured tests for assets and features authz by @tanvi029 in #119
- solved metering for response by @ankitmashu in #121
- Update Jenkinsfile to handle RESTAssured integration tests by @ThorodanBrom in #122
- Update Jenkinsfile - remove old failsafe reports before running integration tests by @ThorodanBrom in #125
- Processes test and minor refactor by @gopal-mahajan in #123
- Change license in OpenAPI specs by @ThorodanBrom in #126
- Added client SDK by @ThorodanBrom in #124
- Update client SDK folder to include SDKs for OGC, STAC and metering APIs by @ThorodanBrom in #127
- Move .openapi-generator files into OGC folder by @ThorodanBrom in #128
Full Changelog: v1.0.0...v1.0.1
v1.0.0
Version Summary
Version Number : v1.0.0 [tag: v1.0.0]
Date: 03-April-2024
Projects / Repos Included in this release: OGC Resource Server, IUDX Deployment and installation, IUDX's Documentation
Release Summary :
India Urban Data Exchange (IUDX) | OGC Resource Server v1.0.0 is released with enhanced features.
Highlights:
- OGC Resource Server supports OGC Features and STAC APIs
- Authorized access based on ACL APD policies
- Latest Software Client libraries
- Enhanced Software Testing
- 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
OpenAPI specification 3.0.0 can be found here. Please download and use it with Swagger or equivalent tools to view the API documentation.
License
With this release, all IUDX Softwares will be distributed under Apache 2.0 License
What's Changed
- Added source files and configurations by @code-akki in #1
- Added v0.0.1 of Postman Collection and openapi by @code-akki in #2
- Junit stubs by @code-akki in #3
- Docs by @code-akki in #4
- Added end-to-end code logics for API Server to Database by @code-akki in #5
- Schema change by @code-akki in #6
- Collections by @code-akki in #7
- Features by @code-akki in #8
- Added dockerfile and stack file for unclustered deployment by @karun-singh in #10
- Jenkins CD Pipeline Integration by @karun-singh in #11
- Updated hostname to be accessed dynamically by @code-akki in #12
- [DRAFT] Added Authentication and Authorization by @code-akki in #9
- Fixed OGC Exception object in AuthHandler by @code-akki in #14
- Updated Auth OGC exception objects by @code-akki in #16
- Minor fix by @code-akki in #17
- Updated Token flows by @code-akki in #18
- Added new files for test reporting by @code-akki in #20
- Datetime update by @code-akki in #19
- Updated Jenkins CICD tests by @karun-singh in #21
- Jenkins ci fix by @karun-singh in #22
- Update Jenkinsfile by @karun-singh in #23
- Update Jenkinsfile by @karun-singh in #24
- Update Jenkinsfile by @karun-singh in #25
- Update Jenkinsfile by @karun-singh in #26
- Update docker-compose.test.yml by @karun-singh in #27
- Updated OpenAPI specs including minor fixes by @code-akki in #15
- STAC catalog, collection and items by @tanvi029 in #29
- Updated code to comply with OGC compliance Test by @code-akki in #34
- Added Flyway migration setup by @code-akki in #35
- Stac api by @tanvi029 in #38
- jobs-table-schema by @gopal-mahajan in #36
- collection_details data type modified by @tanvi029 in #37
- Bug Fix : Fix V3 migration by @ThorodanBrom in #39
- Bug fixes for hostname by @ThorodanBrom in #40
- Removed addtional "/"s from links by @code-akki in #41
- STAC-catalog links modified by @tanvi029 in #42
- STAC OPEN API spec endpoint by @tanvi029 in #43
- STAC-Catalog Links updated by @tanvi029 in #44
- Enabled authorization for Features API by @code-akki in #45
- Renamed tablename for authorization by @code-akki in #46
- API to describe a collection by @tanvi029 in #47
- Added reference to STAC on OGC landing page using
rel: service-meta
by @ThorodanBrom in #48 - STAC collections fixes by @tanvi029 in #49
- Add UUID check for public DB methods using collectionId before making query by @ThorodanBrom in #51
- Tiles API by @code-akki in #28
- STAC - getCollection updation by @tanvi029 in #52
- Jenkins: enable docker image push to ghcr by @karun-singh in #54
- Jenkins fix by @karun-singh in #55
- Added Git Badges by @karun-singh in #56
- Jenkins: remove depl image push by @karun-singh in #57
- Asset api by @tanvi029 in #58
- Software updates by @Kranthi-Guribilli in #61
- Bug fix 1 by @code-akki in #62
- Processes branch - /processes & /processes/{processId} by @gopal-mahajan in #60
- open resource token Validation by @tanvi029 in #63
- License information update by @sushanthakumar in #65
- open resource check in Asset API by @tanvi029 in #66
- Bug Fix by @code-akki in #67
- asset field added in STAC Collections API by @tanvi029 in #70
New Contributors
- @code-akki made their first contribution in #1
- @karun-singh made their first contribution in #10
- @tanvi029 made their first contribution in #29
- @gopal-mahajan made their first contribution in #36
- @ThorodanBrom made their first contribution in #39
- @Kranthi-Guribilli made their first contribution in #61
- @sushanthakumar made their first contribution in #65
Full Changelog: https://github.com/datakaveri/ogc-resource-server/commits/v0.9.0