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

scaffold lab api teams #2

Closed
olivercodes opened this issue Jun 25, 2023 · 2 comments
Closed

scaffold lab api teams #2

olivercodes opened this issue Jun 25, 2023 · 2 comments
Assignees

Comments

@olivercodes
Copy link
Member

Implement the teams api for DI platforms.

https://app.mural.co/t/twma7655/m/twma7655/1659125905811/89644c232bd59569a1103607f3b2fa263c1ed25e?sender=ue017dd0a0ba865be72d75848

Decided to start over from the old repo: https://github.com/ThoughtWorks-DPS/lab-api-teams-python-archive
And rebuild it using Golang. Advantages in doing so:

  1. ability to export types and interfaces such that operator modules can import and reconcile the domain entities (example, these https://github.com/ThoughtWorks-DPS/lab-api-teams/blob/main/pkg/domain/teams.go can be imported by our Operators to use the same Struct models)
  2. k8s standard to build in golang, multiple libraries and tools to support development (the lab-api-teams itself may never need to import a k8s library, however the operators subscribing to it will)
  3. Go clean code patterns lend themselves well to the requirements of our api. Meaning, we will need to be able to run it on multiple clouds against multiple different databases, so that the api works on gcp, azure, and aws. To do this, we need to follow the Clean Architecture principles, and develop interfaces for our entity models so that each database type is just an interface implementation. Go lends itself well to this pattern

ACs:

  1. Ability to GET/LIST/POST/PUT/DELETE teams. Detailed requirements for each endpoint in mural
  2. Ability to GET/LIST/POST/PUT/DELETE namespace records. Detailed requirements for each endpoint in mural
  3. Ability to GET/LIST/POST/PUT/DELETE gateway records. Detailed requirements for each endpoint in mural
  4. Works with Redis for rapid local development
  5. Works with DynamoDB for remote deployment
  6. CircleCI setup and function al
  7. Build passing and deploying to DPS labs clusters

There are additional endpoints documented in mural that are more specialized to some of the domain entities (for example, there's a GET endpoint for fetching only Master namespace records). We will tackle these specialized endpoints in a subsequent task.

@olivercodes olivercodes self-assigned this Jun 25, 2023
olivercodes added a commit that referenced this issue Jun 25, 2023
ThoughtWorks-DPS/lab-api-teams/#2

Signed-off-by: Bryan Oliver <[email protected]>
olivercodes added a commit that referenced this issue Jun 25, 2023
ThoughtWorks-DPS/lab-api-teams/#2

Signed-off-by: Bryan Oliver <[email protected]>
olivercodes added a commit that referenced this issue Jun 25, 2023
…itory integrated with api

ThoughtWorks-DPS/lab-api-teams/#2
olivercodes added a commit that referenced this issue Jun 25, 2023
ThoughtWorks-DPS/lab-api-teams/#2
olivercodes added a commit that referenced this issue Jun 27, 2023
…ion endpoint, confirm endpoint checks for requested status
olivercodes added a commit that referenced this issue Jun 27, 2023
…ion endpoint, confirm endpoint checks for requested status
olivercodes added a commit that referenced this issue Jun 27, 2023
@olivercodes
Copy link
Member Author

olivercodes commented Jun 27, 2023

from @ncheneweth - Assess whether DynamoDB is right choice. Could be a managed service backend (that's on the cluster, for example)

Everybody ships SQL, for example
Or POSTgres local to cluster, Mongo local cluster, etc.

OSS options as well

  • TiKV / TiDB
  • Vitess

@olivercodes
Copy link
Member Author

olivercodes commented Jul 27, 2023

Breaking this into multiple tasks: #3 #4 #5 #6 #7 #8

Completed ACs:
Ability to GET/LIST/POST/PUT/DELETE teams. Detailed requirements for each endpoint in mural
Ability to GET/LIST/POST/PUT/DELETE namespace records. Detailed requirements for each endpoint in mural
Works with Redis for rapid local development

@olivercodes olivercodes changed the title lab api teams scaffold lab api teams Jul 27, 2023
olivercodes added a commit that referenced this issue Jul 29, 2023
…definitions

ThoughtWorks-DPS/lab-api-teams/#2

Signed-off-by: Bryan Oliver <[email protected]>
olivercodes added a commit that referenced this issue Jul 29, 2023
ThoughtWorks-DPS/lab-api-teams/#2

Signed-off-by: Bryan Oliver <[email protected]>
olivercodes added a commit that referenced this issue Jul 29, 2023
…redis repository integrated with api

ThoughtWorks-DPS/lab-api-teams/#2
olivercodes added a commit that referenced this issue Jul 29, 2023
olivercodes added a commit that referenced this issue Jul 29, 2023
…ion endpoint, confirm endpoint checks for requested status
olivercodes added a commit that referenced this issue Jul 29, 2023
olivercodes added a commit that referenced this issue Jul 29, 2023
…ad, humanitec), backend store agnostic (sql client, mongo client)
olivercodes added a commit that referenced this issue Jul 29, 2023
…d, humanitec), backend store agnostic (sql client, mongo client)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant