{"id":19292190,"url":"https://github.com/nasa-pds/registry-api","last_synced_at":"2026-04-10T03:01:46.888Z","repository":{"id":37789688,"uuid":"444555977","full_name":"NASA-PDS/registry-api","owner":"NASA-PDS","description":"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.","archived":false,"fork":false,"pushed_at":"2026-01-28T01:21:58.000Z","size":5522,"stargazers_count":4,"open_issues_count":148,"forks_count":7,"subscribers_count":5,"default_branch":"develop","last_synced_at":"2026-01-28T17:40:56.615Z","etag":null,"topics":["data-search","java","nasa","nasa-api","pds","pds4"],"latest_commit_sha":null,"homepage":"https://nasa-pds.github.io/pds-api","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NASA-PDS.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":".zenodo.json","notice":"NOTICE.txt","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-01-04T20:36:08.000Z","updated_at":"2026-01-28T01:21:59.000Z","dependencies_parsed_at":"2023-09-26T23:22:50.819Z","dependency_job_id":"0899465d-ed21-4665-ae25-05193c5e134b","html_url":"https://github.com/NASA-PDS/registry-api","commit_stats":{"total_commits":1046,"total_committers":24,"mean_commits":"43.583333333333336","dds":0.7141491395793499,"last_synced_commit":"80f7c53fca3f3389d4eac5b081b3c774aa093cd8"},"previous_names":[],"tags_count":43,"template":false,"template_full_name":"NASA-PDS/template-repo-java","purl":"pkg:github/NASA-PDS/registry-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NASA-PDS%2Fregistry-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NASA-PDS%2Fregistry-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NASA-PDS%2Fregistry-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NASA-PDS%2Fregistry-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NASA-PDS","download_url":"https://codeload.github.com/NASA-PDS/registry-api/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NASA-PDS%2Fregistry-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29130096,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T18:55:47.139Z","status":"ssl_error","status_checked_at":"2026-02-05T18:55:04.010Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-search","java","nasa","nasa-api","pds","pds4"],"created_at":"2024-11-09T22:29:36.439Z","updated_at":"2026-02-05T19:01:14.359Z","avatar_url":"https://github.com/NASA-PDS.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Registry API\n\n[![DOI](https://zenodo.org/badge/444555977.svg)](https://zenodo.org/badge/latestdoi/444555977) [![🤪 Unstable integration \u0026 delivery](https://github.com/NASA-PDS/registry-api/actions/workflows/unstable-cicd.yaml/badge.svg)](https://github.com/NASA-PDS/registry-api/actions/workflows/unstable-cicd.yaml) [![😌 Stable integration \u0026 delivery](https://github.com/NASA-PDS/registry-api/actions/workflows/stable-cicd.yaml/badge.svg)](https://github.com/NASA-PDS/registry-api/actions/workflows/stable-cicd.yaml)\n\nThis repository implements the [search API v1.0.0-SNAPSHOT](https://nasa-pds.github.io/pds-api/specifications.html) for the PDS registry.\n\n\nIt is composed with the following subcomponents:\n- lexer: parse the API request queries (q parameter), based on antlr4 grammar\n- model: library end-point controller definition and response objects generated from the openAPI specification (see https://github.com/NASA-PDS/pds-api/)\n- service: the API service, a spring-boot application\n\n\n## Prerequisites\n\nFor the API to work, you also need ElasticSearch/OpenSearch with some test data loaded in it.\n\nBased 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](#Tests):\n\n\n    git clone https://github.com/NASA-PDS/registry.git\n    \n\nStart the prerequisites by following the [Quick Start Guide](https://github.com/NASA-PDS/registry/tree/main/docker#-quick-start-guide---with-default-configurations)\n\n\n## Start the application from a released package\n\nGet the latest stable release https://github.com/NASA-PDS/registry-api/releases\n\nDownload the zip or tar.gz 'registry-api-service-1.0.0-bin' file.\n\nFollow instructions in README.txt in the decompressed folder    \n\n\n## Developers\n\n### Running the API\n\n#### Prerequisites\n\nTo build and run the application you need:\n\n- jdk 17\n- maven\n\nAdditionally, harvested data will only be picked up correctly by the API if all of the following are true:\n - the data has been given a status of \"archived\" using registry-mgr\n - the registry-sweepers have been executed to update required metadata, see https://github.com/NASA-PDS/registry-sweepers\n\nThere are two approaches to running a local development instance of the API\n\n#### [Option 1] Non-Containerized (useful for breakpoint debugging)\n\n1. [Deploy an instance of the registry docker-compose](https://github.com/NASA-PDS/registry/tree/main/docker#readme)\n2. Kill the existing API container\n      \n       docker kill docker-registry-api-1\n\n3. Temporarily disable certificate verification by making the following modification to [application.properties](./service/src/main/resources/application.properties)\n\n       openSearch.sslCertificateCNVerification=false\n       \n4. If using the docker-compose setup (step 1), only one discipline node tenant is configured, it is 'geo', check this line:\n\n\n       openSearch.disciplineNodes=geo\n\n\n5. Build the application\n\n       mvn clean install\n\n6. Start the application \n\n       cd service\n       mvn spring-boot:run\n       \n\nThe API will now be accessible on (by default) https://localhost:8080\n       \n7. 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:\n\n\n       mvn -Dspring-boot.run.profiles=dev spring-boot:run\n     \n\n    \n#### [Option 2] Build a development docker image\n\nYour local docker image will be used in the integration deployment described below.\n\n    mvn spring-boot:build-image\n    \n\n## View Swagger UI\n\nGo to http://localhost:8080\n\n\n## Integration deployment\n\nYou can deploy the registry-api together with all other components of the registry (harvest, opensearch, ...) and reference datasets.\n\nClone the `registry` repository, and launch the docker compose script as described in https://github.com/NASA-PDS/registry/tree/main/docker\n\nFor example, launch:\n\n    docker compose --profile int-registry-batch-loader up\n\nThe integration tests will be automatically applied. Check the results, update/complete them as necessary\n\n\n## Tests\n\n### Testing Requirements\n\n**IMPORTANT:** As a developer, you are **required** to add integration tests to the Postman test suite for:\n- Each new feature or requirement\n- Each bug fix\n- Any changes to existing API behavior\n\n### Integration Testing Guide\n\nIntegration tests are maintained in the `registry` repository as Postman collections. For complete instructions on creating, running, and submitting integration tests, see:\n\n**[Integration Testing Guide](https://nasa-pds.github.io/registry/developer/integration-testing.html)**\n\nAll test updates must be submitted as pull requests to the [`registry` repository](https://github.com/NASA-PDS/registry).\n    \n    \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnasa-pds%2Fregistry-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnasa-pds%2Fregistry-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnasa-pds%2Fregistry-api/lists"}