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
56 changes: 56 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
name: Default
about: General change (backend, frontend, knowledge, infra)
title: ""
labels: ""
assignees: ""
---

## Summary

<!-- What is changing and why? One clear paragraph. -->

## Type of change

- [ ] ✨ Feature (new capability)
- [ ] πŸ› Bugfix (fixes a defect)
- [ ] πŸ”’ Security (vulnerability / hardening)
- [ ] βš™οΈ Configuration / Infra / CI
- [ ] πŸ“š Documentation
- [ ] πŸ“¦ Dependency
- [ ] πŸš€ Release

> **Specialized template?** If your change is primarily **Security**, a
> **Release**, **Configuration/Infra**, **Documentation**, **Dependency** or a
> **Bugfix**, please use the matching typed template in
> [`.github/PULL_REQUEST_TEMPLATE/`](./PULL_REQUEST_TEMPLATE/) instead β€” each
> carries the checks the PR-quality CI expects for that type.

## Scope

- [ ] Backend (`backend/`)
- [ ] Frontend (`frontend/`)
- [ ] Knowledge / docs (`knowledge/`, docs)
- [ ] Infra / CI (`k8s/`, `.github/workflows/`)
- [ ] Other: _____

## What changed

<!-- Bullet list of the concrete changes. -->

## How tested

- [ ] Lint passes (ruff / eslint)
- [ ] Tests pass (pytest / vitest)
- [ ] Manual verification

```
(paste test / verification output)
```

## Checklist

- [ ] No secrets committed
- [ ] No unrelated changes bundled
- [ ] Existing files not clobbered (additive where appropriate)
- [ ] Changes are minimal and targeted
53 changes: 41 additions & 12 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,50 @@
# Security Policy

ZyntroAI treats security vulnerabilities seriously. This document covers which
versions are supported and how to report a vulnerability privately.

## Supported Versions

Use this section to tell people about which versions of your project are
currently being supported with security updates.
Only the current release line receives security patches. Older lines are
supported on a best-effort basis.

| Version | Supported |
| ------- | ------------------ |
| 5.1.x | :white_check_mark: |
| 5.0.x | :x: |
| 4.0.x | :white_check_mark: |
| < 4.0 | :x: |
| Version | Supported |
| ---------------- | ------------------ |
| latest (main) | :white_check_mark: |
| < latest | :x: |

## Reporting a Vulnerability

Use this section to tell people how to report a vulnerability.
**Do not open a public GitHub issue for security problems.**

Instead, report privately so the issue can be assessed and patched before it
is disclosed:

- **Preferred:** Open a [private security advisory][advisories] on GitHub.
- **Fallback:** Email the maintainer directly if you cannot use the advisory
flow. (Link the relevant repository and include a minimal reproduction.)

### What to expect

1. **Acknowledgment** within **48 hours** of your report.
2. **Triage** β€” we confirm the issue, scope its impact, and assign severity.
3. **Fix** β€” we develop and ship a patch. Timeline depends on severity:
- **Critical / High**: patch as soon as possible (target within days).
- **Medium / Low**: scheduled with the next release.
4. **Disclosure** β€” we coordinate public disclosure after the fix ships so
users can upgrade before details go public.

If a report is declined (not a vulnerability, or out of scope), we explain why
and close it with that reasoning. We request that reporters allow time for a
patch before public disclosure.

## Security practices in this repo

- Secrets never ship in source or config β€” use environment variables / CI
secrets only (see `.env.example` for the shape).
- External-service failures fail **open** (graceful degradation), never leak
state.
- CI runs secret scanning and static analysis on PRs before merge.
- Dependencies are kept current; security advisories are triaged promptly.

Tell them where to go, how often they can expect to get an update on a
reported vulnerability, what to expect if the vulnerability is accepted or
declined, etc.
[advisories]: https://github.com/ZyntroAI/fastapi-python-boilerplate/security/advisories
Loading