Skip to content
Open
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
62 changes: 62 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
---
name: 🐛 Bug Report
about: Report a bug in the Password Manager backend
title: "[BUG] <short description>"
labels: bug
assignees: ''
---

## 🐛 Bug Description
<!-- A clear and concise description of what the bug is -->

## 🔁 Steps to Reproduce
1. Authenticate and obtain JWT token via Vault Web
2. Call endpoint `...` with payload `...`
3. Observe the error

## ✅ Expected Behavior
<!-- What you expected to happen -->

## ❌ Actual Behavior
<!-- What actually happened. Include HTTP status code and response body if applicable -->
```json
{
"status": 500,
"error": "..."
}
```

## 🧱 Affected Area
<!-- Check all that apply -->
- [ ] Password Entry (CRUD)
- [ ] Category Management
- [ ] Vault Setup / Unlock / Rotate / Migrate
- [ ] Password Reveal (master password / vault token)
- [ ] Password Generation
- [ ] Password Breach Check
- [ ] JWT Authentication / Security
- [ ] Encryption / Decryption
- [ ] Other: ___

## ⚠️ Priority
<!-- How urgent is this? -->
- [ ] 🔴 Critical – data loss, security vulnerability, or system crash
- [ ] 🟠 High – core feature broken, no workaround
- [ ] 🟡 Medium – feature partially broken, workaround exists
- [ ] 🟢 Low – minor issue or cosmetic

## 🖥️ Environment
- OS: <!-- e.g. Ubuntu 22.04, macOS 14, Windows 11 -->
- Java Version: <!-- e.g. Java 21 -->
- Spring Boot Version: <!-- e.g. 3.x -->
- Run Mode: <!-- HTTP / HTTPS (dev profile) -->
- Port: <!-- default 8091 -->

## 🔐 Vault State (if relevant)
- Vault initialized: <!-- Yes / No / Unknown -->
- Vault locked: <!-- Yes / No -->
- Using X-Vault-Token: <!-- Yes / No -->
- `vault.requireInitialization` enabled: <!-- Yes / No / Unknown -->

## 📎 Logs / Additional Context
<!-- Paste relevant stack traces, Swagger UI screenshots, or curl commands (redact any secrets!) -->
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: 💬 General Questions & Discussions
url: https://github.com/Vault-Web/password-manager/discussions
about: For questions about setup, usage, or integration with Vault Web — use Discussions, not Issues.
- name: 🔐 Security Vulnerability
url: https://github.com/Vault-Web/password-manager/security/advisories/new
about: Please report security vulnerabilities privately via GitHub Security Advisories, NOT as public issues.
48 changes: 48 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
name: 🚀 Feature Request
about: Suggest a new feature or improvement for the Password Manager
title: "[FEATURE] <short description>"
labels: enhancement
assignees: ''
---

## 🚀 Feature Description
<!-- A clear description of the feature you'd like to see -->

## 💡 Motivation / Problem
<!-- What problem does this solve? Why is it needed? -->

## 🧱 Affected Area
<!-- Which part of the backend would this touch? -->
- [ ] Password Entry API (`/api/passwords`)
- [ ] Category API (`/api/categories`)
- [ ] Vault API (`/api/vault`)
- [ ] Password Generation (`/api/passwords/generate`)
- [ ] Password Breach Check
- [ ] JWT / Security Layer
- [ ] Encryption / Crypto Service
- [ ] Database / Repository Layer
- [ ] Configuration / Properties
- [ ] Other: ___

## ⚠️ Priority
- [ ] 🔴 Critical – blocking major use case
- [ ] 🟠 High – significant improvement to core functionality
- [ ] 🟡 Medium – useful but not urgent
- [ ] 🟢 Low – nice to have

## 📐 Proposed Solution
<!-- How do you think this could be implemented? Any API design ideas? -->
```http
POST /api/...
Authorization: Bearer <jwt>
{
"field": "value"
}
```

## 🔄 Alternatives Considered
<!-- Any alternative approaches you've thought of? -->

## 📎 Additional Context
<!-- Links, references, mockups, or anything else helpful -->
51 changes: 51 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
## 📋 Summary
<!-- What does this PR do and why? Be specific. -->

Closes #<!-- issue number -->

## 🔧 Type of Change
- [ ] 🐛 Bug fix
- [ ] 🚀 New feature
- [ ] ♻️ Refactor / code cleanup
- [ ] 📝 Documentation update
- [ ] ✅ Test improvement
- [ ] 🔒 Security fix
- [ ] ⚙️ Configuration / build change

## 🧱 Affected Layer(s)
- [ ] Controller (`/controllers`)
- [ ] Service (`/services`)
- [ ] Repository (`/repositories`)
- [ ] Model / DTO (`/model`, `/model/dtos`)
- [ ] Security (`/security` — JWT, encryption)
- [ ] Exception Handling (`/exceptions`)
- [ ] Config (`/config`)
- [ ] Tests (`/test`)

## 🔐 Security Checklist
<!-- Required for any change touching auth, encryption, or vault logic -->
- [ ] No secrets, tokens, or passwords are logged or exposed
- [ ] JWT validation logic is unchanged or reviewed
- [ ] Vault token (`X-Vault-Token`) handling is not weakened
- [ ] Encryption / decryption behaviour is unchanged or explicitly reviewed
- [ ] No `ENCRYPTION_SECRET` or master password is hardcoded

## ✅ General Checklist
- [ ] I have read the [CONTRIBUTING](../../CONTRIBUTING.md) guide
- [ ] Code follows existing style (Spring Boot conventions, Lombok, etc.)
- [ ] I have tested locally (`./mvnw spring-boot:run` on port 8091)
- [ ] Swagger UI (`/swagger-ui.html`) reflects changes correctly (if API changed)
- [ ] Existing tests pass (`./mvnw test`)
- [ ] New tests added for new behaviour (if applicable)
- [ ] No new compiler warnings introduced

## 🧪 How to Test
<!-- Step-by-step for the reviewer -->
1. Set `ENCRYPTION_SECRET` env variable
2. Start Vault Web Docker (`docker compose up -d`)
3. Run: `cd backend && ./mvnw spring-boot:run`
4. Open Swagger at `http://localhost:8091/swagger-ui.html`
5. ...

## 📎 Additional Notes
<!-- Anything the reviewer should be aware of — breaking changes, DB migrations, config changes, etc. -->