updated smaller collections for manual
This commit is contained in:
55
collections/developers/proxy/contributions.md
Normal file
55
collections/developers/proxy/contributions.md
Normal file
@@ -0,0 +1,55 @@
|
||||
<h1>Contributions Guide</h1>
|
||||
|
||||
<h2>Table of Contents</h2>
|
||||
|
||||
- [Introduction](#introduction)
|
||||
- [Project structure](#project-structure)
|
||||
- [Internal](#internal)
|
||||
- [Pkg](#pkg)
|
||||
- [Writing tests](#writing-tests)
|
||||
|
||||
***
|
||||
|
||||
## Introduction
|
||||
|
||||
We propose a quick guide to learn how to contribute.
|
||||
|
||||
## Project structure
|
||||
|
||||
The main structure of the code base is as follows:
|
||||
|
||||
- `charts`: helm chart
|
||||
- `cmds`: includes the project Golang entrypoints
|
||||
- `docs`: project documentation
|
||||
- `internal`: contains the explorer API logic and the cert manager implementation, this where most of the feature work will be done
|
||||
- `pkg`: contains client implementation and shared libs
|
||||
- `tests`: integration tests
|
||||
- `tools`: DB tools to prepare the Postgres DB for testing and development
|
||||
- `rootfs`: ZOS root endpoint that will be mounted in the docker image
|
||||
|
||||
### Internal
|
||||
|
||||
- `explorer`: contains the explorer server logic:
|
||||
- `db`: the db connection and operations
|
||||
- `mw`: defines the generic action mount that will be be used as http handler
|
||||
- `certmanager`: logic to ensure certificates are available and up to date
|
||||
|
||||
`server.go` includes the logic for all the API operations.
|
||||
|
||||
### Pkg
|
||||
|
||||
- `client`: client implementation
|
||||
- `types`: defines all the API objects
|
||||
|
||||
## Writing tests
|
||||
|
||||
Adding a new endpoint should be accompanied with a corresponding test. Ideally every change or bug fix should include a test to ensure the new behavior/fix is working as intended.
|
||||
|
||||
Since these are integration tests, you need to first make sure that your local db is already seeded with the ncessary data. See tools [doc](./db_testing.md) for more information about how to prepare your db.
|
||||
|
||||
Testing tools offer two clients that are the basic of most tests:
|
||||
|
||||
- `local`: this client connects to the local db
|
||||
- `proxy client`: this client connects to the running local instance
|
||||
|
||||
You need to start an instance of the server before running the tests. Check [here](./commands.md) for how to start.
|
||||
Reference in New Issue
Block a user