Thanks for checking out the Endpoint-Auth-Service. In order to contribute, please check the general FIWARE development guidelines.
The Endpoint-Auth-Service consists of multiple components, using different technologies and languages. Please check the individual guidelines for them. If a new one is added in the contribution, please add a rationale for that(f.e. in the form of an ADR). For component specific information, check their folders.
Your contributions should try to follow the google java coding guidelines. The structure of your code should fit the principles of Domain Driven Design and use the DI-mechanisms of Mirconaut. Be aware of the framework and make use of its functionalities wherever it makes sense. Additional tooling for code-generation is included in the project(lombok, openAPI-codegen, mapstruct) in order to reduce boiler-plate code.
Your contributions should try to follow the idioms and recommendations from effective_go. Gin is used as a web-framework. Be aware of the framework and make use of its functionalities wherever it makes sense.
For the overall integration-testing, cucumber is used together with junit5.
Since this project uses automatic versioning, please apply one of the following labels to your pull request:
- patch - the PR contains a fix
- minor - the PR contains a new feature/improvement
- major - the PR contains a breaking change
The PRs enforce squash merge. Please provide a proper description on your squash, it will be used for release notes.
Please report vulnerabilities as bugs or email the authors.
If you find bug or searching for a new feature, please check the issues and pull requests first.
If your bug is not already mentioned, please create either a PR or a new issue. The issue should contain a brief description on the observed behaviour, your expectation and a description on how to reproduce it (bonus points if you provide a testcase for reproduction;).
Create an issue including a proper description for the new feature. You can also start with a PR right away, but it would be easier to align on the details before and save unnessary work if discussed before. If new functionality is added, the integration-testsuite needs to be extended.