gov.nasa.pds.registry-api:registry-api-model
Web API service for the PDS Registry, providing the implementation of the PDS Search API (https://github.com/nasa-pds/pds-api) for the PDS Registry.
Science Score: 46.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: zenodo.org -
✓Committers with academic emails
10 of 24 committers (41.7%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (16.1%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
Web API service for the PDS Registry, providing the implementation of the PDS Search API (https://github.com/nasa-pds/pds-api) for the PDS Registry.
Basic Info
- Host: GitHub
- Owner: NASA-PDS
- License: apache-2.0
- Language: Java
- Default Branch: develop
- Homepage: https://nasa-pds.github.io/pds-api
- Size: 5.16 MB
Statistics
- Stars: 4
- Watchers: 6
- Forks: 5
- Open Issues: 130
- Releases: 0
Topics
Metadata Files
README.md
Registry API
This repository implements the search API v1.0.0-SNAPSHOT for the PDS registry.
It is composed with the following subcomponents: - lexer: parse the API request queries (q parameter), based on antlr4 grammar - model: library end-point controller definition and response objects generated from the openAPI specification (see https://github.com/NASA-PDS/pds-api/) - service: the API service, a spring-boot application
Prerequisites
For the API to work, you also need ElasticSearch/OpenSearch with some test data loaded in it.
Based on docker you can easily start all the prerequisites as configured in the registry repository. This repository is also useful to run the integration tests:
git clone https://github.com/NASA-PDS/registry.git
Start the prerequisites by following the Quick Start Guide
Start the application from a released package
Get the latest stable release https://github.com/NASA-PDS/registry-api/releases
Download the zip or tar.gz 'registry-api-service-1.0.0-bin' file.
Follow instructions in README.txt in the decompressed folder
Developers
Running the API
Prerequisites
To build and run the application you need:
- jdk 17
- maven
Additionally, harvested data will only be picked up correctly by the API if all of the following are true: - the data has been given a status of "archived" using registry-mgr - the registry-sweepers have been executed to update required metadata, see https://github.com/NASA-PDS/registry-sweepers
There are two approaches to running a local development instance of the API
[Option 1] Non-Containerized (useful for breakpoint debugging)
- Deploy an instance of the registry docker-compose
Kill the existing API container
docker kill docker-registry-api-1
Temporarily disable certificate verification by making the following modification to application.properties
openSearch.sslCertificateCNVerification=false
If using the docker-compose setup (step 1), only one discipline node tenant is configured, it is 'geo', check this line:
openSearch.disciplineNodes=geo
Build the application
mvn clean install
Start the application
cd service mvn spring-boot:run
The API will now be accessible on (by default) https://localhost:8080
Specific configuration profile: if you run the application in a specific environment you can define a dedicated
application.properties, for exampleapplication-dev.propertiesthat does not need to be commited on git. Launch it as follow:mvn -Dspring-boot.run.profiles=dev spring-boot:run
[Option 2] Build a development docker image
Your local docker image will be used in the integration deployment described below.
mvn spring-boot:build-image
View Swagger UI
Go to http://localhost:8080
Integration deployment
You can deploy the registry-api together with all other components of the registry (harvest, opensearch, ...) and reference datasets.
Clone the registry repository, and launch the docker compose script as described in https://github.com/NASA-PDS/registry/tree/main/docker
For example, launch:
docker compose --profile int-registry-batch-loader up
The integration tests will be automatically applied. Check the results, update/complete them as necessary
Tests
Important note: As a developer you are asked to complete the postman test suite according to the new feature you are developing. Do a pull request in the registry project to submit the updates.
Integration test are maintained in postman.
Edit/Run of the integration tests in postman GUI
Install the postman desktop, from https://www.postman.com/downloads/
Download and open the test suite found in https://github.com/NASA-PDS/registry/tree/main/docker/postman
Run the integration tests in command line
In the registry project.
Launch the test in command line:
npm install newman
newman run docker/postman/postman_collection.json --env-var baseUrl=http://localhost:8080
Owner
- Name: NASA Planetary Data System Software
- Login: NASA-PDS
- Kind: organization
- Email: pds-operator@jpl.nasa.gov
- Website: https://nasa-pds.github.io/
- Repositories: 106
- Profile: https://github.com/NASA-PDS
GitHub Events
Total
- Create event: 68
- Release event: 5
- Issues event: 67
- Watch event: 2
- Delete event: 64
- Issue comment event: 244
- Push event: 110
- Pull request review comment event: 19
- Pull request review event: 30
- Pull request event: 103
Last Year
- Create event: 68
- Release event: 5
- Issues event: 67
- Watch event: 2
- Delete event: 64
- Issue comment event: 244
- Push event: 110
- Pull request review comment event: 19
- Pull request review event: 30
- Pull request event: 103
Committers
Last synced: about 2 years ago
Top Committers
| Name | Commits | |
|---|---|---|
| PDSEN CI Bot | p****i@j****v | 299 |
| thomas loubrieu | t****u@j****v | 179 |
| Alex Dunn | a****n@j****v | 84 |
| tloubrieu | l****u@j****v | 84 |
| Al Niessner | A****r@x****x | 73 |
| thomas loubrieu | 6****l | 45 |
| Jimmie Young | j****g@j****v | 38 |
| Jordan Padams | 3****s | 36 |
| Jordan Padams | j****s@j****v | 33 |
| SwaggerHub | S****b@s****m | 29 |
| al-niessner | 1****r | 28 |
| Sean Kelly | k****y@s****z | 27 |
| niessner-jpl | A****r@j****v | 20 |
| Jimmie Young | j****g@g****m | 15 |
| Alex Dunn | 7****l | 14 |
| Eugene | t****t@t****m | 10 |
| PDS dev admin | p****i@g****m | 9 |
| pdsen-ci | 6****i | 9 |
| Eugene | t****2@y****m | 5 |
| dependabot[bot] | 4****] | 3 |
| tdddblog | y****o@j****v | 3 |
| Catherine Suh | 1****h | 1 |
| Lyle Barner | l****r@j****v | 1 |
| tloubrieu | t****u@s****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 231
- Total pull requests: 150
- Average time to close issues: 4 months
- Average time to close pull requests: 28 days
- Total issue authors: 16
- Total pull request authors: 8
- Average comments per issue: 2.9
- Average comments per pull request: 1.88
- Merged pull requests: 102
- Bot issues: 0
- Bot pull requests: 61
Past Year
- Issues: 55
- Pull requests: 95
- Average time to close issues: 3 months
- Average time to close pull requests: about 1 month
- Issue authors: 5
- Pull request authors: 6
- Average comments per issue: 0.91
- Average comments per pull request: 1.77
- Merged pull requests: 55
- Bot issues: 0
- Bot pull requests: 56
Top Authors
Issue Authors
- jordanpadams (119)
- tloubrieu-jpl (92)
- alexdunnjpl (33)
- jimmie (8)
- msbentley (3)
- plawton-umd (2)
- dependabot[bot] (2)
- nutjob4life (2)
- sjoshi-jpl (1)
- viviant100 (1)
- anilnatha (1)
- cpiker (1)
- ramesh-maddegoda (1)
- stein-geo (1)
- jjacob7734 (1)
Pull Request Authors
- dependabot[bot] (75)
- alexdunnjpl (48)
- tloubrieu-jpl (41)
- jordanpadams (20)
- al-niessner (7)
- nutjob4life (6)
- jimmie (3)
- tariqksoliman (2)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 3
- Total downloads: unknown
-
Total dependent packages: 0
(may contain duplicates) -
Total dependent repositories: 0
(may contain duplicates) - Total versions: 51
repo1.maven.org: gov.nasa.pds:registry-api
PDS Registry API
- Homepage: https://nasa-pds.github.io/registry-api
- Documentation: https://appdoc.app/artifact/gov.nasa.pds/registry-api/
- License: The Apache License, Version 2.0
-
Latest release: 4.5.6
published almost 3 years ago
Rankings
repo1.maven.org: gov.nasa.pds.registry-api:registry-api-model
PDS Registry API Controllers and Responses Models
- Homepage: https://nasa-pds.github.io/registry-api
- Documentation: https://appdoc.app/artifact/gov.nasa.pds.registry-api/registry-api-model/
- License: The Apache License, Version 2.0
-
Latest release: 4.5.6
published almost 3 years ago
Rankings
repo1.maven.org: gov.nasa.pds.registry-api:registry-api-service
Registry API Service contributing to the PDS Federated Search API
- Homepage: https://nasa-pds.github.io/registry-api
- Documentation: https://appdoc.app/artifact/gov.nasa.pds.registry-api/registry-api-service/
- License: The Apache License, Version 2.0
-
Latest release: 4.5.6
published almost 3 years ago
Rankings
Dependencies
- org.antlr:antlr4 4.9.2
- org.antlr:antlr4-runtime-testsuite 4.9.2
- org.apache.commons:commons-lang3 3.4
- org.junit.jupiter:junit-jupiter-api 5.7.0
- org.junit.jupiter:junit-jupiter-engine 5.7.0
- org.springframework.boot:spring-boot-dependencies 2.3.1.RELEASE import
- javax.servlet:servlet-api 2.5 provided
- com.fasterxml.jackson.core:jackson-annotations
- com.fasterxml.jackson.core:jackson-core
- com.fasterxml.jackson.core:jackson-databind
- com.fasterxml.jackson.dataformat:jackson-dataformat-xml 2.13.2
- com.fasterxml.jackson.jaxrs:jackson-jaxrs-base
- com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider
- com.github.joschi.jackson:jackson-datatype-threetenbp 2.12.5
- io.springfox:springfox-boot-starter 3.0.0
- javax.validation:validation-api
- joda-time:joda-time 2.10.6
- junit:junit
- org.springframework.boot:spring-boot-autoconfigure
- org.springframework.boot:spring-boot-starter-test
- org.springframework.boot:spring-boot-starter-thymeleaf
- org.springframework.boot:spring-boot-starter-web
- org.springframework:spring-context 5.3.20
- org.springframework:spring-web 5.3.20
- org.threeten:threetenbp 1.4.4
- org.apache.commons:commons-numbers-primes 1.0 compile
- org.junit.jupiter:junit-jupiter 5.8.0-M1 test
- org.springframework.boot:spring-boot-dependencies 2.7.0 import
- javax.servlet:servlet-api 2.5 provided
- com.amazonaws:aws-java-sdk-secretsmanager 1.12.201
- com.fasterxml.jackson.core:jackson-annotations
- com.fasterxml.jackson.core:jackson-core 2.13.2
- com.fasterxml.jackson.core:jackson-databind 2.13.2.2
- com.fasterxml.jackson.dataformat:jackson-dataformat-xml 2.13.2
- com.fasterxml.jackson.jaxrs:jackson-jaxrs-base 2.13.2
- com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider 2.13.2
- com.github.joschi.jackson:jackson-datatype-threetenbp 2.12.5
- com.google.guava:guava 31.1-jre
- com.sun.xml.bind:jaxb-core 2.3.0.1
- com.sun.xml.bind:jaxb-impl 2.3.1
- gov.nasa.pds:registry-api-lexer 1.1.1
- gov.nasa.pds:registry-api-model 1.0.1
- io.springfox:springfox-boot-starter 3.0.0
- javax.validation:validation-api
- javax.xml.bind:jaxb-api 2.3.1
- joda-time:joda-time 2.10.6
- org.antlr:antlr4-runtime 4.9.2
- org.apache.commons:commons-collections4 4.2
- org.apache.httpcomponents:httpclient 4.5.13
- org.javassist:javassist 3.25.0-GA
- org.junit.jupiter:junit-jupiter-api
- org.junit.jupiter:junit-jupiter-engine
- org.opensearch.client:opensearch-rest-client 1.2.4
- org.opensearch.client:opensearch-rest-high-level-client 1.2.4
- org.springframework.boot:spring-boot-autoconfigure
- org.springframework.boot:spring-boot-starter-test
- org.springframework.boot:spring-boot-starter-thymeleaf
- org.springframework.boot:spring-boot-starter-validation
- org.springframework.boot:spring-boot-starter-web
- org.springframework:spring-context
- org.springframework:spring-jdbc
- org.springframework:spring-web
- org.threeten:threetenbp 1.4.4
- actions/cache v3 composite
- actions/checkout v3 composite
- actions/setup-java v2 composite
- actions/checkout v3 composite
- actions/upload-artifact v3 composite
- github/codeql-action/analyze v2 composite
- github/codeql-action/autobuild v2 composite
- github/codeql-action/init v2 composite
- NASA-PDS/roundup-action stable composite
- actions/cache v3 composite
- actions/checkout v3 composite
- docker/build-push-action v3 composite
- docker/login-action v2 composite
- docker/setup-buildx-action v2 composite
- docker/setup-qemu-action v2 composite
- NASA-PDS/roundup-action stable composite
- actions/cache v3 composite
- actions/checkout v3 composite
- docker/build-push-action v3 composite
- docker/login-action v2 composite
- docker/setup-buildx-action v2 composite
- docker/setup-qemu-action v2 composite
- openjdk 17-slim build