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.

https://github.com/nasa-pds/registry-api

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

data-search java nasa nasa-api pds pds4

Keywords from Contributors

planetary registry ingestion archive geometry planetary-science spice interactive network-simulation hacking
Last synced: 6 months ago · JSON representation

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
Statistics
  • Stars: 4
  • Watchers: 6
  • Forks: 5
  • Open Issues: 130
  • Releases: 0
Topics
data-search java nasa nasa-api pds pds4
Created about 4 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Codeowners Security Zenodo

README.md

Registry API

DOI 🤪 Unstable integration & delivery 😌 Stable integration & delivery

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)

  1. Deploy an instance of the registry docker-compose
  2. Kill the existing API container

    docker kill docker-registry-api-1

  3. Temporarily disable certificate verification by making the following modification to application.properties

    openSearch.sslCertificateCNVerification=false

  4. If using the docker-compose setup (step 1), only one discipline node tenant is configured, it is 'geo', check this line:

    openSearch.disciplineNodes=geo

  5. Build the application

    mvn clean install

  6. Start the application

    cd service mvn spring-boot:run

The API will now be accessible on (by default) https://localhost:8080

  1. Specific configuration profile: if you run the application in a specific environment you can define a dedicated application.properties, for example application-dev.properties that 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

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

All Time
  • Total Commits: 1,046
  • Total Committers: 24
  • Avg Commits per committer: 43.583
  • Development Distribution Score (DDS): 0.714
Past Year
  • Commits: 211
  • Committers: 12
  • Avg Commits per committer: 17.583
  • Development Distribution Score (DDS): 0.645
Top Committers
Name Email 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
i&t.skip (106) sprint-backlog (105) requirement (102) task (90) bug (60) p.must-have (54) B14.0 (49) B15.0 (48) p.should-have (41) B13.1 (34) B14.1 (32) needs:triage (30) Epic (29) icebox (29) s.high (25) s.medium (24) B15.1 (23) proj.registry+api (15) B16 (15) theme (15) p.could-have (13) B12.0 (12) B12.1 (11) i&t.done (10) duplicate (7) open.v1.4.0 (7) i&t.automated (7) open.v1.3.1 (6) open.1.5.0 (6) s.low (5)
Pull Request Labels
needs:dependency (58) java (39) dependencies (17) github_actions (15) docker (5) sprint-backlog (3) p.must-have (2) requirement (2) bug (1) needs:triage (1) B12.0 (1) B15.0 (1)

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

  • Versions: 21
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Forks count: 31.6%
Dependent repos count: 32.0%
Average: 37.5%
Stargazers count: 37.7%
Dependent packages count: 48.9%
Last synced: 6 months ago
repo1.maven.org: gov.nasa.pds.registry-api:registry-api-model

PDS Registry API Controllers and Responses Models

  • Versions: 15
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 33.6%
Average: 40.8%
Dependent packages count: 48.0%
Last synced: 6 months ago
repo1.maven.org: gov.nasa.pds.registry-api:registry-api-service

Registry API Service contributing to the PDS Federated Search API

  • Versions: 15
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 33.6%
Average: 40.8%
Dependent packages count: 48.0%
Last synced: 6 months ago

Dependencies

lexer/pom.xml maven
  • 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
model/pom.xml maven
  • 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
pom.xml maven
  • org.apache.commons:commons-numbers-primes 1.0 compile
  • org.junit.jupiter:junit-jupiter 5.8.0-M1 test
service/pom.xml maven
  • 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
.github/workflows/branch-cicd.yaml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/setup-java v2 composite
.github/workflows/codeql-analysis.yml actions
  • 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
.github/workflows/stable-cicd.yaml actions
  • 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
.github/workflows/unstable-cicd.yaml actions
  • 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
docker/Dockerfile docker
  • openjdk 17-slim build