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

create api cmd/app #58

Open
1 of 8 tasks
Tracked by #33
jadudm opened this issue Dec 30, 2024 · 0 comments
Open
1 of 8 tasks
Tracked by #33

create api cmd/app #58

jadudm opened this issue Dec 30, 2024 · 0 comments
Assignees

Comments

@jadudm
Copy link
Contributor

jadudm commented Dec 30, 2024

Sub-Task for Implement Results API #33

Problem

Change management in government is hard. If, in transitioning between systems, we were to invent a new API, it would represent a huge disruption for many of our partners.

For that reason, we want to minimize, or even eliminate, the change costs for our partners. We'll do that by re-implementing the existing API.

How did we discover this problem?

This problem is inherent in the switch between systems. Users expect our API to exist at a given endpoint, take a certain set of parameters, and produce results in a given shape. We cannot/should not violate that.

Job Story(s)

Calling the api endpoint should return data formatted in the same JSON structure of the current results API.

Note - For purposes of this sub story data is mocked until integrated with database in subsequent work.

What are we planning to do about it?

The goal of the API reimplementation is to faithfully reimplement the Results API.

The goal of this step is to introduce an API service into the stack that would be adequate to the task of being ready for LATO assessment.

That's it.

What are we not planning to do about it?

Future work include

How will we measure success?

Ready for Pull Request Review When:

Preview Give feedback

Security Considerations

Required per CM-4.

This is a read-only API, and is no more or less dangerous than any other HTTP server. (Which is to say...)

We're using standard libraries, and it talks to read-only database files (not a live server). Therefore, we have some confidence that this is a good/secure implementation pathway for API implementation.

Things to consider/address for purposes of security:

Consider/address

Preview Give feedback

Billion laughs: https://en.wikipedia.org/wiki/Billion_laughs_attack
OWASP Top 10 API risks: https://owasp.org/API-Security/editions/2023/en/0x11-t10/

Various validation libraries

Not intended to be exhaustive

Inspirational articles:

references/resources

@jadudm jadudm added this to jemison Dec 30, 2024
@github-project-automation github-project-automation bot moved this to triage in jemison Dec 30, 2024
@IsabelLaurenceau IsabelLaurenceau self-assigned this Jan 16, 2025
@jadudm jadudm moved this from triage to underway in jemison Jan 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: underway
Development

No branches or pull requests

2 participants