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

Release/1.3.0 #191

Merged
merged 24 commits into from
Jun 20, 2024
Merged

Release/1.3.0 #191

merged 24 commits into from
Jun 20, 2024

Conversation

nikki-t
Copy link
Collaborator

@nikki-t nikki-t commented Jun 18, 2024

[1.3.0]

Added

- Issue 186 - Implement API keys to control usage
- Issue 183 - Update documentation examples and provide a brief intro to the timeseries endpoint
- Issue 100 - Add option to 'compact' GeoJSON result into single feature
- Issue 101 - Add support for HTTP Accept header
- Issue 102 - Enable compression for API Responses

Changed

Deprecated

Removed

Fixed

- Issue 175 - Update all documentation to point to OPS instead of UAT

Security

[1.2.0]

Added

- Issue 124 - Log granule name on ingest
- Issue 155 - Log feature ids on database write
- Issue 21 - Create tutorial documentation
- Issue 142 - Add fields to support OPS monitoring and set up indexes to query on them

Changed

- Issue 161 - Remove obscure_data option from load data lambdas before OPS loading, add environment variable.

Deprecated

Removed

Fixed

- Issue 169 - 403 Error when accessing grnule through bulk load_data
- Issue 158 - Use Lambda role instead of EDL for s3 connection
- Issue 104 - Prevent nodes from being loaded into the reach table

Security

nikki-t and others added 24 commits April 22, 2024 12:34
* changelog

* update examples, remove load_data readme, info moved to wiki
* Reorganize timeseries code to  prep for Accept header

* Enable Accept header to return response of specific content-type

* Fix whitespace and string continuation

* Make error handling consistent and add an additional test where a reach can't be found

* Update changelog with issue for unreleased version

* Add 415 status code to API definition

* Few minor cleanup items

* Few minor cleanup items

* Update to aiohttp@3.9.4

* Fix dependencies

---------

Co-authored-by: Frank Greguska <89428916+frankinspace@users.noreply.github.com>
* Enable payload compression

* Update changelog with issue

---------

Co-authored-by: Frank Greguska <89428916+frankinspace@users.noreply.github.com>
…feature (#177)

* Reorganize timeseries code to  prep for Accept header

* Enable Accept header to return response of specific content-type

* Fix whitespace and string continuation

* Make error handling consistent and add an additional test where a reach can't be found

* Update changelog with issue for unreleased version

* Add 415 status code to API definition

* Few minor cleanup items

* Few minor cleanup items

* Update to aiohttp@3.9.4

* Fix dependencies

* Update required query parameters based on current API functionality

* Enable return of 'compact' GeoJSON response

* Fix linting and add test data

* Update documentation for API accept headers and compact GeoJSON response

* Fix references to incorrect Accept header examples

---------

Co-authored-by: Frank Greguska <89428916+frankinspace@users.noreply.github.com>
* Provide introduction to timeseries endpoint

* Remove _units in fields list

* Fix typo

* Update examples with Accept headers and compact query parameter

* Add issue to changelog

* Fix typo in timeseries documentation

* Update pymysql

* Update pymysql

* Provide clarity on accept headers and request parameter fields
* API Gateway Lambda authorizer to facilitate API keys and usage plans

* Unit tests to test Lambda authorizer

* Fix terraform file formatting

* API Gateway Lambda Authorizer

- Lambda function
- API Keys and Authorizer definition in OpenAPI spec
- API gateway API keys
- API gateway usage plans
- SSM parameters for API keys

* Fix trailing whitespace

* Set default region environment variable

* Fix SNYK vulnerabilities

* Add issue to changelog

* Implement custom trusted partner header x-hydrocron-key

* Update cryptography for SNYK vulnerability

* Update documentation to include API key usage

* Update quota and throttle settings for API Gateway

* Update API keys documentation to indicate to be implemented

* Move API key lookup to Lambda INIT

* Remove API key authentication and update API key to x-hydrocron-key
@nikki-t nikki-t requested review from torimcd and frankinspace June 18, 2024 21:07
@nikki-t nikki-t self-assigned this Jun 18, 2024
Copy link

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@nikki-t
Copy link
Collaborator Author

nikki-t commented Jun 18, 2024

UAT modification required:

  1. REST API Terraform definition require a small modification to ensure the Lambda authorizer keys are used, added api_key_source = "AUTHORIZER".

Confirmed via UAT benchmark tests:

  1. That the trusted user usage plan will throttle requests to return a '429: Too Many Requests' error response.
  2. That the trusted user usage plan will return a 'Limit Exceeded' error response when the request quota is met.

@frankinspace
Copy link
Member

Looks good to me. Once we release to ops we should point out the accept-header information to the working group and ask them to utilize that functionality so that the output is compact by default (they may need to update their clients).

@nikki-t
Copy link
Collaborator Author

nikki-t commented Jun 20, 2024

@frankinspace - I completely forgot about the Elastic heartbeat ping requests the gateway gets every 15 seconds. They are currently included in the default usage plan and (if my math is correct) would generate ~172,800 requests per month.

Should we stick with including them in the default plan or should we provide them with their own API key?

@nikki-t
Copy link
Collaborator Author

nikki-t commented Jun 20, 2024

We decided to allow the ping requests to be a part of the default usage plan and will explore the necessity of providing a separate key and possible usage plan in issue #192.

@nikki-t nikki-t marked this pull request as ready for review June 20, 2024 18:36
@nikki-t nikki-t merged commit d3ab17f into main Jun 20, 2024
1 check passed
@nikki-t nikki-t deleted the release/1.3.0 branch June 20, 2024 18:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants