Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

general bug fixes (a collection) #166

Merged
merged 34 commits into from
Aug 16, 2022
Merged
Show file tree
Hide file tree
Changes from 30 commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
702f386
Bumping version for 1.0.1 release
pdsen-ci Jun 9, 2022
1b1668b
Update requirements
pdsen-ci Jun 9, 2022
95e1b57
Update changelog
pdsen-ci Jun 9, 2022
31956b4
Setting snapshot version for 1.0.2-SNAPSHOT
pdsen-ci Jun 9, 2022
44602e9
Issue 131: increase adaptability (#142)
al-niessner Jun 13, 2022
095fc59
Update changelog
pdsen-ci Jun 13, 2022
f059420
add curl in docker image so to wait for opensearch to be ready
Jun 22, 2022
3078d4c
Fix typo
jordanpadams Jun 30, 2022
c4fcb9e
Update changelog
pdsen-ci Jun 30, 2022
5268102
Merge pull request #153 from NASA-PDS/curl_registry_69
jordanpadams Jul 2, 2022
0841448
Update changelog
pdsen-ci Jul 2, 2022
bb579d7
Update README.md
jordanpadams Jul 5, 2022
8acfa5d
Update changelog
pdsen-ci Jul 5, 2022
bd2f868
Add a Dockerfile for building images for AWS deployments (#151)
jimmie Jul 5, 2022
2585f0f
Update changelog
pdsen-ci Jul 5, 2022
1cbc2a9
Update README.md
jordanpadams Jul 5, 2022
1a763bc
Update changelog
pdsen-ci Jul 5, 2022
c2dfaaf
Switch back to 8080 by default (#157)
jordanpadams Jul 5, 2022
e2d0160
fix for 141 (#147) (#156)
jordanpadams Jul 5, 2022
bedd878
Update changelog
pdsen-ci Jul 5, 2022
85cea9c
Update changelog
pdsen-ci Jul 5, 2022
2336d7b
changed string searching (#158)
al-niessner Jul 14, 2022
bda3511
Update changelog
pdsen-ci Jul 14, 2022
6c307f9
clean up of code in search of fixing #150
Jul 20, 2022
26759d6
fixes for issue 162
Jul 20, 2022
8498cae
fixes for issue 162
Jul 20, 2022
4e5691a
fix up summary only
Jul 23, 2022
95d7c8e
undo debugging change
Jul 23, 2022
dc46df8
fix for null pointer that is not a problem in this version because th…
Jul 23, 2022
e5ede81
fix for issue 149
Jul 27, 2022
85f8fe5
merge from main and sonatype
Jul 27, 2022
2327144
sonatype
Jul 27, 2022
03f6452
remove unnecessary suppression
Aug 1, 2022
b2bb21b
move back to correct version
Aug 10, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 31 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,32 @@
# Changelog

## [v1.1.0-SNAPSHOT](https://github.com/NASA-PDS/registry-api/tree/v1.1.0-SNAPSHOT) (2022-05-25)
## [«unknown»](https://github.com/NASA-PDS/registry-api/tree/«unknown») (2022-07-14)

[Full Changelog](https://github.com/NASA-PDS/registry-api/compare/v1.0.0...v1.1.0-SNAPSHOT)
[Full Changelog](https://github.com/NASA-PDS/registry-api/compare/v1.0.2-SNAPSHOT...«unknown»)

**Requirements:**

- As a user, I want to have an administrator contact when I am getting an error 500 from the server [\#109](https://github.com/NASA-PDS/registry-api/issues/109)

**Improvements:**

- Support override of application.properties for AWS Docker image [\#117](https://github.com/NASA-PDS/registry-api/issues/117)

**Other closed issues:**

- add ops:Tracking\_Meta/ops:archive\_status to meta section of API response [\#101](https://github.com/NASA-PDS/registry-api/issues/101)

## [v1.0.2-SNAPSHOT](https://github.com/NASA-PDS/registry-api/tree/v1.0.2-SNAPSHOT) (2022-07-05)

[Full Changelog](https://github.com/NASA-PDS/registry-api/compare/v1.0.1...v1.0.2-SNAPSHOT)

**Improvements:**

- Refactor API endpoints for simpler architecture/design/implementation to maintain/extend [\#131](https://github.com/NASA-PDS/registry-api/issues/131)

## [v1.0.1](https://github.com/NASA-PDS/registry-api/tree/v1.0.1) (2022-06-09)

[Full Changelog](https://github.com/NASA-PDS/registry-api/compare/v1.0.0...v1.0.1)

**Requirements:**

Expand All @@ -23,6 +47,10 @@
- documentation does not match behavior [\#106](https://github.com/NASA-PDS/registry-api/issues/106) [[s.medium](https://github.com/NASA-PDS/registry-api/labels/s.medium)]
- LID -\> LIDVID conversion not consistent in registry-api [\#79](https://github.com/NASA-PDS/registry-api/issues/79) [[s.low](https://github.com/NASA-PDS/registry-api/labels/s.low)]

**Other closed issues:**

- Bump search version to 1.0 [\#143](https://github.com/NASA-PDS/registry-api/issues/143)

## [v1.0.0](https://github.com/NASA-PDS/registry-api/tree/v1.0.0) (2022-04-19)

[Full Changelog](https://github.com/NASA-PDS/registry-api/compare/v0.5.1...v1.0.0)
Expand Down Expand Up @@ -51,6 +79,7 @@
**Requirements:**

- As a user, I want to see the version of the API specification in the URL of the service [\#59](https://github.com/NASA-PDS/registry-api/issues/59)
- As a user, I want to have a complete default fields \(for now at least\) [\#155](https://github.com/NASA-PDS/registry-api/issues/155)
- As a user, I want the end-point /api to redirect to the API documentation [\#63](https://github.com/NASA-PDS/registry-api/issues/63)
- As a user, I want the /products end point to work for any class of products [\#64](https://github.com/NASA-PDS/registry-api/issues/64)
- As a user, I want specific end points for products which are not collections or bundles [\#65](https://github.com/NASA-PDS/registry-api/issues/65)
Expand Down
47 changes: 34 additions & 13 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,40 @@ The concept flow through the code is single threaded down a stack. What this tra

What happens if new code cannot fit into the current concept flow? A refactoring of the concept flow will need to take place and all existing classes will have to be updated to the new structure. This should be resolved before any code changes take place.

Lastly, the code is divided into packages that very roughly group the functionality. It is not well defined and therefore much of the code is smeared about and any clean up of the smearing is welcome - always. Below is a rough definition for each package:

gov.nasa.pds.api.

model.xml - strictly autogenerated code by swagger from model/swagger.yml
registry - base package that contains interfaces to break circular dependencies and spring-boot content.
registry.business - supposed to be the PDS specific stuff but it is much more of a hodgepodge at this time.
registry.configuration - AWS, spring-boot, and swagger configuration information
registry.controllers - where the user request is bottled into a UserContext or should be but it currently has a lot of business loging in it.
registry.exceptions - all locally defined exceptions
registry.lexer - strictly autogenerated code by antlr
registry.opensearch - required opensearch configuration for a connection and a collection of stuff that binds business needs with opensearch
registry.serialize - once the business logic is done, these unit seralize them into the request output format (header Accept value).
The overall architecture/design is the MVC. In this insteance, the controller is the transmutation of uer inputs into the interfaces necessary for the model to fullfil the request. The model represents how the PDS data is stored internally. The view is the serialized output in its appropriate format since that is what the user sees or views.

Lastly, the code is divided into packages that very roughly group the functionality that reflect the MVC architecture/design. While they may not perfectly enforced currently, the implementation is moving in this direction:

**gov.nasa.pds.**

**model**
- strictly autogenerated code by swagger from model/swagger.yml

**api.registry**
- base package that contains
- interfaces to break circular dependencies and improve encapsulation
- spring-boot content.

**api.registry.configuration**
- AWS, spring-boot, and swagger configuration information

**api.registry.controller**
- *control* bidirectional transmutation between registry Java design/implementation and the swagger model (auto generated code)

**api.registry.exceptions**
- all locally defined exceptions

**api.registry.lexer**
- strictly autogenerated code by antlr

**api.registry.model**
- supposed to be the model of how the data is stored and organized but it is much more of a hodgepodge at this time.

**api.registry.search**
- required opensearch configuration for a connection and a collection of stuff that binds model needs with opensearch

**api.registry.view**
- once the model has found the needed data, these unit seralize them into the request output format (header Accept value) to complete the request.

All of the interfaces in registry are a Context. What does context mean here. It represents the conceptual flow of information. Many users can access the same endpoint with differnt parameters. These context items hold the state for those individual requests just a context is normally used with program threading. They help separate those classes that need state from that which is purely functional help. In the case of the registry, very little state is needed and is easily represented with these interfaces.

Expand Down
9 changes: 5 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,7 @@ Based on `docker` you can easily start all the prerequisites as configured in th
git clone https://github.com/NASA-PDS/registry.git


Start the prerequisites:

docker compose --profile=dev-api up
Start the prerequisites by following the [Quick Start Guide](https://github.com/NASA-PDS/registry/tree/main/docker#-quick-start-guide---with-default-configurations)


## Start the application from a released package
Expand Down Expand Up @@ -53,8 +51,11 @@ Builds the application:


cd service
mvn sprint-boot:run
mvn spring-boot:run

## View Swagger UI

Go to http://localhost:8080

## Tests

Expand Down
90 changes: 90 additions & 0 deletions docs/requirements/v1.0.1/REQUIREMENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@

Requirements Summary
====================

# default

## As an API user, I want an average query response time of 1 second for q=* queries ([#69](https://github.com/NASA-PDS/registry-api/issues/69))


This requirement is not impacted by the current version
## As an API user, I want to handle long-running queries that take >10 seconds. ([#68](https://github.com/NASA-PDS/registry-api/issues/68))


This requirement is not impacted by the current version
## As an operator, I want to have a wrapper script for starting up the API service ([#67](https://github.com/NASA-PDS/registry-api/issues/67))


This requirement is not impacted by the current version
## As a user, I want to know why my query syntax is invalid ([#66](https://github.com/NASA-PDS/registry-api/issues/66))


This requirement is not impacted by the current version
## As a user, I want specific end points for products which are not collections or bundles ([#65](https://github.com/NASA-PDS/registry-api/issues/65))


This requirement is not impacted by the current version
## As a user, I want the /products end point to work for any class of products ([#64](https://github.com/NASA-PDS/registry-api/issues/64))


This requirement is not impacted by the current version
## As a user, I want the end-point /api to redirect to the API documentation ([#63](https://github.com/NASA-PDS/registry-api/issues/63))


This requirement is not impacted by the current version
## As a user, I want to have singular urls when I should only expect a single element in the response ([#61](https://github.com/NASA-PDS/registry-api/issues/61))


This requirement is not impacted by the current version
## As a user, I want to see the version of the API specification in the URL of the service ([#59](https://github.com/NASA-PDS/registry-api/issues/59))


This requirement is not impacted by the current version
## As a user, I want to see the version of the API specification in the URL of the service ([#8](https://github.com/NASA-PDS/registry-api/issues/8))


This requirement is not impacted by the current version
## As a user, I want the /products end point to work for any class of products ([#11](https://github.com/NASA-PDS/registry-api/issues/11))


This requirement is not impacted by the current version
## As a user, I want specific end points for products which are not collections or bundles ([#12](https://github.com/NASA-PDS/registry-api/issues/12))


This requirement is not impacted by the current version
## As a user, I want to know why my query syntax is invalid ([#13](https://github.com/NASA-PDS/registry-api/issues/13))


This requirement is not impacted by the current version
## As an operator, I want to have a wrapper script for starting up the API service ([#14](https://github.com/NASA-PDS/registry-api/issues/14))


This requirement is not impacted by the current version
## As an API user, I want to handle long-running queries that take >10 seconds. ([#15](https://github.com/NASA-PDS/registry-api/issues/15))


This requirement is not impacted by the current version
## As an API user, I want an average query response time of 1 second for q=* queries ([#16](https://github.com/NASA-PDS/registry-api/issues/16))


This requirement is not impacted by the current version
## As an API caller(user) I want to specify fields for endpoints given a lidvid ([#80](https://github.com/NASA-PDS/registry-api/issues/80))


This requirement is not impacted by the current version
## the default proposed mime type in swagger-ui.html should be 'application/json' ([#88](https://github.com/NASA-PDS/registry-api/issues/88))


This requirement is not impacted by the current version
## As a user, I want to have an administrator contact when I am getting an error 500 from the server ([#109](https://github.com/NASA-PDS/registry-api/issues/109))


This requirement is not impacted by the current version
## As a user I want consistent /type/lidvlid/{child,parent}/{latest,all} ([#126](https://github.com/NASA-PDS/registry-api/issues/126))


This requirement is not impacted by the current version
## As a user, I want to get the product identifiers in a application/kvp+json format ([#132](https://github.com/NASA-PDS/registry-api/issues/132))


This requirement is not impacted by the current version
17 changes: 6 additions & 11 deletions model/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -112,27 +112,22 @@
<!--SpringFox dependencies -->
<dependency>
al-niessner marked this conversation as resolved.
Show resolved Hide resolved
al-niessner marked this conversation as resolved.
Show resolved Hide resolved
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${springfox-version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${springfox-version}</version>
</dependency>

<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.3.19</version>
<version>5.3.20</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.19</version>
<version>5.3.20</version>
</dependency>


Expand Down
Loading