Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# These are supported funding model platforms

github: rennf93
# patreon: # Replace with a single Patreon username
# open_collective: # Replace with a single Open Collective username
# ko_fi: # Replace with a single Ko-fi username
# tidelift: # not applicable for this ecosystem
# community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
# liberapay: # Replace with a single Liberapay username
# issuehunt: # Replace with a single IssueHunt username
# lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
# polar: # Replace with a single Polar username
# buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
custom: ['https://paypal.me/renzof93']
51 changes: 51 additions & 0 deletions .github/ISSUE_TEMPLATE/bug.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Bug report
description: Spring Boot Guard does not behave as documented
title: "[BUG] "
labels: [bug]
body:
- type: input
id: value
attributes:
label: Value this delivers
description: One sentence a user could witness once this is fixed.
placeholder: "Requests with whitelisted IPs are no longer rate limited."
validations:
required: true
- type: textarea
id: what
attributes:
label: What happened
description: What you did, what you expected, what you got. Error messages, stack traces and logs go here.
validations:
required: true
- type: textarea
id: steps
attributes:
label: Steps to reproduce
placeholder: |
1. Configure Spring Boot Guard with '...'
2. Send a request to '...'
3. See error
validations:
required: true
- type: input
id: versions
attributes:
label: Versions
description: spring-boot-guard version, JDK version, OS.
placeholder: "spring-boot-guard 1.3.0, JDK 17, Ubuntu 24.04"
validations:
required: true
- type: textarea
id: config
attributes:
label: Configuration
description: Your config with secrets masked.
render: kotlin
placeholder: |
// Minimal setup that reproduces the issue (secrets masked)
- type: textarea
id: context
attributes:
label: Additional context
description: Production or development, consistent or intermittent, workarounds tried.
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Spring Boot Guard Documentation
url: https://guard-core.github.io/spring-boot-guard/
about: Check the documentation for usage information and tutorials
- name: Discord
url: https://discord.gg/ZW7ZJbjMkK
about: Questions and support in #help, new versions in #releases, development stream in #dev-feed
31 changes: 31 additions & 0 deletions .github/ISSUE_TEMPLATE/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Documentation
description: Wrong, missing or unclear Spring Boot Guard documentation
title: "[DOCS] "
labels: [documentation]
body:
- type: input
id: value
attributes:
label: Value this delivers
description: One sentence a reader could witness once this is fixed.
placeholder: "The rate limiting page shows the exact config for a Redis-backed store."
validations:
required: true
- type: input
id: page
attributes:
label: Page
description: URL of the page or section.
validations:
required: true
- type: textarea
id: problem
attributes:
label: What is wrong or missing
validations:
required: true
- type: textarea
id: proposal
attributes:
label: Proposed text
render: markdown
35 changes: 35 additions & 0 deletions .github/ISSUE_TEMPLATE/feature.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Feature request
description: Suggest an improvement to Spring Boot Guard
title: "[FEATURE] "
labels: [enhancement]
body:
- type: input
id: value
attributes:
label: Value this delivers
description: One sentence a user could witness once this exists.
placeholder: "A single toggle disables all detection for one route."
validations:
required: true
- type: textarea
id: job
attributes:
label: The job you are trying to get done
description: The outcome you need, not the mechanism you imagine.
validations:
required: true
- type: textarea
id: workaround
attributes:
label: How you work around it today
- type: textarea
id: example
attributes:
label: Example usage
description: Pseudocode of how you would like to use it.
render: kotlin
- type: textarea
id: context
attributes:
label: Additional context
description: Similar features in other libraries, constraints, API implications.
61 changes: 61 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
Delivers issue: #

<!--- Every PR closes an open issue. Chores and dependency bumps take the `no-issue` label instead. -->

Description
===========

<!--- Describe your changes in detail -->

___

Motivation and Context
----------------------

<!--- Why is this change required? What problem does it solve? -->
<!--- If adding a new feature, please describe the motivation for it -->

___

Type of change
--------------

<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
- [ ] Documentation change
- [ ] Performance improvement
- [ ] Code cleanup or refactoring

___

How Has This Been Tested
-------------------------

<!--- Please describe in detail how you tested your changes. -->
<!--- Include details of your testing environment, and the tests you ran to -->
<!--- see how your change affects other areas of the code, etc. -->

___

Screenshots (if appropriate)
-----------------------------

___

Checklist
---------

<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!--- If you're unsure about any of these, ask in the pull request. -->

- [ ] My code follows the code style of this project (Spotless, detekt)
- [ ] I have added tests to cover my changes
- [ ] All new and existing tests passed
- [ ] My change requires a change to the documentation
- [ ] I have updated the documentation accordingly
- [ ] I have checked that my changes don't introduce any new warnings or errors
- [ ] I have updated the version number if necessary
- [ ] I have added any new dependencies to the Gradle build files
29 changes: 29 additions & 0 deletions GOVERNANCE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Governance

Spring Boot Guard is part of the [Guard Core](https://github.com/Guard-Core) ecosystem. I maintain it alone; [MAINTAINERS.md](MAINTAINERS.md) lists who I am and how to check it.

## Decisions

I make the final call on every change: features, releases, security fixes and repository access. A proposal starts as an issue, so the reasoning is public before any code is written.

## How a change lands

1. Every change is a pull request to `master`.
2. The branch ruleset requires signed commits, linear history, passing status checks and two approvals, one of them from a code owner ([CODEOWNERS](.github/CODEOWNERS)). As the only maintainer I cannot get those approvals, so I merge my own pull requests with admin rights. That skips the approval count only: I never merge with a failing check.
3. A pull request closes an open issue (`Closes #N`), or carries the `no-issue` label when it is a small fix with nothing to discuss.

## Releases

Versions follow semantic versioning. Adapters version on their own, because each one follows its framework, and declare the engine versions they support. Releases are cut from tags and recorded in [CHANGELOG.md](CHANGELOG.md).

## Security

Vulnerabilities go through [SECURITY.md](SECURITY.md), never through public issues.

## New maintainers

Contributors with a record of reviewed and merged work can be invited as maintainers. A new maintainer is added to MAINTAINERS.md and CODEOWNERS in a pull request.

## Conduct

The [Code of Conduct](CODE_OF_CONDUCT.md) applies to every space of this project.
21 changes: 21 additions & 0 deletions MAINTAINERS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Maintainers

Spring Boot Guard has one maintainer.

| Name | GitHub | Email | Role |
|---|---|---|---|
| Renzo Franceschini | [@rennf93](https://github.com/rennf93) | rennf93@guard-core.com | Lead maintainer: reviews and merges every change, publishes every release, handles security reports |

## Identity

- GitHub profile [@rennf93](https://github.com/rennf93): name Renzo Franceschini, website guard-core.com.
- [guard-core.com/company](https://guard-core.com/company) names Renzo Franceschini and links to @rennf93.
- The [Guard-Core](https://github.com/Guard-Core) GitHub organization has guard-core.com as a verified domain.
- Maven Central: the POM lists developer `rennf93`, Renzo Franceschini, rennf93@guard-core.com.

## Related files

- Code ownership: [CODEOWNERS](.github/CODEOWNERS)
- How decisions are made: [GOVERNANCE.md](GOVERNANCE.md)
- Security reports: [SECURITY.md](SECURITY.md)
- Getting help: [SUPPORT.md](SUPPORT.md)
15 changes: 7 additions & 8 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,17 @@

## Supported Versions

We currently provide security updates for the following versions of spring-boot-guard:
I provide security updates for the following versions of spring-boot-guard:

| Version | Supported |
| ------- | ------------------ |
| 1.0.x | :white_check_mark: |
| < 1.0.0 | :x: |
| Version | Supported |
| ------- | --------- |
| 1.x | :white_check_mark: bug and security fixes |

## Reporting a Vulnerability

We take the security of Spring Boot Guard seriously. If you believe you've found a security vulnerability, please follow these steps:
I take the security of Spring Boot Guard seriously. If you believe you've found a security vulnerability, please follow these steps:

1. **Do not disclose the vulnerability publicly** until it has been addressed by the maintainers.
1. **Do not disclose the vulnerability publicly** until I have fixed it.
2. **Report the vulnerability through GitHub's security advisory feature**:
- Go to the [Security tab](https://github.com/Guard-Core/spring-boot-guard/security/advisories) of the Spring Boot Guard repository
- Click on "New draft security advisory"
Expand All @@ -28,7 +27,7 @@ We take the security of Spring Boot Guard seriously. If you believe you've found
- Affected versions
- Any potential mitigations or workarounds

The maintainers will acknowledge your report within 48 hours and provide a detailed response within 7 days, including the next steps in handling the vulnerability.
I will acknowledge your report within 48 hours and send a detailed response within 7 days, including the next steps in handling the vulnerability.

## Security Considerations

Expand Down
8 changes: 8 additions & 0 deletions SUPPORT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Support

- Documentation: [https://guard-core.github.io/spring-boot-guard/](https://guard-core.github.io/spring-boot-guard/)
- Questions: the #help channel on [Discord](https://discord.gg/ZW7ZJbjMkK)
- Chat: [Discord](https://discord.gg/ZW7ZJbjMkK), #help for questions, #releases for new versions.
- Bugs and feature requests: [issues](https://github.com/Guard-Core/spring-boot-guard/issues/new/choose), using the templates.
- Security reports: [SECURITY.md](SECURITY.md), never a public issue.
- The hosted Guard Core app (app.guard-core.com): [saas-issues](https://github.com/Guard-Core/saas-issues).
Loading