Add complete community documentation
- README.md: Product overview + issue tracker landing - SECURITY.md: Responsible disclosure policy - CODE_OF_CONDUCT.md: Community guidelines - CONTRIBUTING.md: How to contribute - SUPPORT.md: Comprehensive support guide - Issue templates: Bug, feature, support, docs, security All references updated to evercatch.dev domain.
This commit is contained in:
39
.env.example
39
.env.example
@@ -1,39 +0,0 @@
|
|||||||
# ─────────────────────────────────────────────
|
|
||||||
# Evercatch — Environment Variables
|
|
||||||
# Copy this file to .env and fill in values.
|
|
||||||
# NEVER commit .env to version control.
|
|
||||||
# ─────────────────────────────────────────────
|
|
||||||
|
|
||||||
# App
|
|
||||||
APP_ENV=development
|
|
||||||
APP_PORT=8000
|
|
||||||
APP_SECRET_KEY=change-me
|
|
||||||
|
|
||||||
# Database — PostgreSQL
|
|
||||||
POSTGRES_HOST=localhost
|
|
||||||
POSTGRES_PORT=5432
|
|
||||||
POSTGRES_DB=evercatch
|
|
||||||
POSTGRES_USER=evercatch
|
|
||||||
POSTGRES_PASSWORD=change-me
|
|
||||||
|
|
||||||
# Database — MongoDB
|
|
||||||
MONGO_URI=mongodb://localhost:27017
|
|
||||||
MONGO_DB=evercatch_events
|
|
||||||
|
|
||||||
# Redis
|
|
||||||
REDIS_URL=redis://localhost:6379
|
|
||||||
|
|
||||||
# Stripe
|
|
||||||
STRIPE_SECRET_KEY=sk_test_...
|
|
||||||
STRIPE_WEBHOOK_SECRET=whsec_...
|
|
||||||
STRIPE_PRICE_ID_INDIE=price_...
|
|
||||||
STRIPE_PRICE_ID_PRO=price_...
|
|
||||||
STRIPE_PRICE_ID_BUSINESS=price_...
|
|
||||||
|
|
||||||
# Providers
|
|
||||||
SENDGRID_WEBHOOK_KEY=
|
|
||||||
SHOPIFY_WEBHOOK_SECRET=
|
|
||||||
GITHUB_WEBHOOK_SECRET=
|
|
||||||
|
|
||||||
# Internal
|
|
||||||
BOT_ACCESS_TOKEN=
|
|
||||||
46
.gitea/issue_template/bug_report.md
Normal file
46
.gitea/issue_template/bug_report.md
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
---
|
||||||
|
name: 🐛 Bug Report
|
||||||
|
about: Report a bug or unexpected behavior
|
||||||
|
title: '[BUG] '
|
||||||
|
labels: bug, status:investigating
|
||||||
|
assignees: ''
|
||||||
|
---
|
||||||
|
|
||||||
|
## Bug Description
|
||||||
|
<!-- A clear description of what the bug is -->
|
||||||
|
|
||||||
|
## Steps to Reproduce
|
||||||
|
1.
|
||||||
|
2.
|
||||||
|
3.
|
||||||
|
|
||||||
|
## Expected Behavior
|
||||||
|
<!-- What you expected to happen -->
|
||||||
|
|
||||||
|
## Actual Behavior
|
||||||
|
<!-- What actually happened -->
|
||||||
|
|
||||||
|
## Environment
|
||||||
|
- **Subscription Tier**: Sandbox / Indie / Studio / Enterprise
|
||||||
|
- **Endpoint Used**: (e.g., POST /api/v1/webhooks/stripe/...)
|
||||||
|
- **Timestamp**: (e.g., 2026-02-13T10:30:00Z)
|
||||||
|
- **Event ID** (if applicable): evt_...
|
||||||
|
- **Browser** (if dashboard issue): Chrome / Firefox / Safari / Edge
|
||||||
|
|
||||||
|
## Screenshots / Logs
|
||||||
|
<!-- If applicable, add screenshots or error logs -->
|
||||||
|
```
|
||||||
|
Paste logs here
|
||||||
|
```
|
||||||
|
|
||||||
|
## Additional Context
|
||||||
|
<!-- Any other context about the problem -->
|
||||||
|
|
||||||
|
## Workaround
|
||||||
|
<!-- If you found a temporary workaround, share it here -->
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**⚠️ SECURITY WARNING**
|
||||||
|
Do NOT include API keys, secrets, or sensitive customer data.
|
||||||
|
For security issues, email security@evercatch.dev instead.
|
||||||
45
.gitea/issue_template/documentation.md
Normal file
45
.gitea/issue_template/documentation.md
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
---
|
||||||
|
name: 📚 Documentation Issue
|
||||||
|
about: Report missing, incorrect, or unclear documentation
|
||||||
|
title: '[DOCS] '
|
||||||
|
labels: documentation
|
||||||
|
assignees: ''
|
||||||
|
---
|
||||||
|
|
||||||
|
## Documentation Page
|
||||||
|
<!-- Link to the docs page with the issue -->
|
||||||
|
https://docs.evercatch.dev/...
|
||||||
|
|
||||||
|
## Issue Type
|
||||||
|
- [ ] Missing documentation
|
||||||
|
- [ ] Incorrect information
|
||||||
|
- [ ] Unclear/confusing explanation
|
||||||
|
- [ ] Broken link
|
||||||
|
- [ ] Code example doesn't work
|
||||||
|
- [ ] Typo/grammar
|
||||||
|
- [ ] Outdated information
|
||||||
|
|
||||||
|
## Description
|
||||||
|
<!-- What's wrong with the docs? -->
|
||||||
|
|
||||||
|
## Current Content
|
||||||
|
<!-- Quote the current problematic content -->
|
||||||
|
```
|
||||||
|
Current text/code here
|
||||||
|
```
|
||||||
|
|
||||||
|
## Suggested Fix
|
||||||
|
<!-- How would you improve it? -->
|
||||||
|
```
|
||||||
|
Suggested text/code here
|
||||||
|
```
|
||||||
|
|
||||||
|
## Additional Context
|
||||||
|
<!-- Screenshots, correct information, working examples, etc. -->
|
||||||
|
|
||||||
|
## Impact
|
||||||
|
<!-- How does this affect users? -->
|
||||||
|
- [ ] Critical - Causes errors if followed
|
||||||
|
- [ ] High - Likely to confuse users
|
||||||
|
- [ ] Medium - Could be clearer
|
||||||
|
- [ ] Low - Minor improvement
|
||||||
54
.gitea/issue_template/feature_request.md
Normal file
54
.gitea/issue_template/feature_request.md
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
---
|
||||||
|
name: ✨ Feature Request
|
||||||
|
about: Suggest a new feature or enhancement
|
||||||
|
title: '[FEATURE] '
|
||||||
|
labels: feature
|
||||||
|
assignees: ''
|
||||||
|
---
|
||||||
|
|
||||||
|
## Problem Statement
|
||||||
|
<!-- What problem does this feature solve? -->
|
||||||
|
|
||||||
|
## Proposed Solution
|
||||||
|
<!-- Describe your ideal solution -->
|
||||||
|
|
||||||
|
## Use Case
|
||||||
|
<!-- How would you use this feature? Be specific. -->
|
||||||
|
|
||||||
|
**Example scenario:**
|
||||||
|
```
|
||||||
|
When I... [describe situation]
|
||||||
|
I want to... [describe action]
|
||||||
|
So that... [describe benefit]
|
||||||
|
```
|
||||||
|
|
||||||
|
## Current Workaround
|
||||||
|
<!-- How are you currently handling this? -->
|
||||||
|
|
||||||
|
## Tier Relevance
|
||||||
|
<!-- Which subscription tier would benefit most? -->
|
||||||
|
- [ ] Sandbox (Free)
|
||||||
|
- [ ] Indie
|
||||||
|
- [ ] Studio
|
||||||
|
- [ ] Enterprise
|
||||||
|
- [ ] All tiers
|
||||||
|
|
||||||
|
## Similar Features
|
||||||
|
<!-- Have you seen this feature in other products? -->
|
||||||
|
|
||||||
|
## Additional Context
|
||||||
|
<!-- Screenshots, mockups, examples from competitors, etc. -->
|
||||||
|
|
||||||
|
## Impact
|
||||||
|
<!-- How important is this feature to you? -->
|
||||||
|
- [ ] Critical - Blocking my business
|
||||||
|
- [ ] High - Very useful
|
||||||
|
- [ ] Medium - Nice to have
|
||||||
|
- [ ] Low - Just an idea
|
||||||
|
|
||||||
|
## Willingness to Pay
|
||||||
|
<!-- Would you upgrade your tier for this feature? -->
|
||||||
|
- [ ] Yes, I would upgrade immediately
|
||||||
|
- [ ] Yes, I would consider upgrading
|
||||||
|
- [ ] No, but it would improve my experience
|
||||||
|
- [ ] N/A - Already on Enterprise
|
||||||
44
.gitea/issue_template/security_vulnerability.md
Normal file
44
.gitea/issue_template/security_vulnerability.md
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
---
|
||||||
|
name: 🔐 Security Vulnerability
|
||||||
|
about: Report a security issue (PRIVATE - use email instead)
|
||||||
|
title: 'DO NOT USE - Email security@evercatch.dev'
|
||||||
|
labels: security
|
||||||
|
assignees: ''
|
||||||
|
---
|
||||||
|
|
||||||
|
# ⚠️ STOP - DO NOT USE THIS TEMPLATE
|
||||||
|
|
||||||
|
**Security vulnerabilities should NOT be reported publicly.**
|
||||||
|
|
||||||
|
Please email us instead: **security@evercatch.dev**
|
||||||
|
|
||||||
|
## Why?
|
||||||
|
|
||||||
|
Public disclosure of security issues can:
|
||||||
|
- Put user data at risk
|
||||||
|
- Allow attackers to exploit the vulnerability
|
||||||
|
- Violate responsible disclosure practices
|
||||||
|
|
||||||
|
## What to Include in Your Email
|
||||||
|
|
||||||
|
- **Description** - What is the vulnerability?
|
||||||
|
- **Steps to Reproduce** - How can we reproduce it?
|
||||||
|
- **Impact** - What could an attacker do?
|
||||||
|
- **Proof of Concept** - Code or screenshots (optional)
|
||||||
|
- **Suggested Fix** - If you have one
|
||||||
|
- **Your Contact Info** - For follow-up
|
||||||
|
|
||||||
|
## Our Commitment
|
||||||
|
|
||||||
|
- ✅ Response within 24 hours
|
||||||
|
- ✅ Updates every 48 hours
|
||||||
|
- ✅ Credit in security advisories (if desired)
|
||||||
|
- ✅ Potential bug bounty (for critical issues)
|
||||||
|
|
||||||
|
## Security Policy
|
||||||
|
|
||||||
|
Read our full security policy: [SECURITY.md](../../SECURITY.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Thank you for keeping Evercatch secure!** 🔒
|
||||||
52
.gitea/issue_template/support_request.md
Normal file
52
.gitea/issue_template/support_request.md
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
---
|
||||||
|
name: ❓ Support Request
|
||||||
|
about: Get help with using Evercatch
|
||||||
|
title: '[SUPPORT] '
|
||||||
|
labels: question
|
||||||
|
assignees: ''
|
||||||
|
---
|
||||||
|
|
||||||
|
## Issue Summary
|
||||||
|
<!-- Brief description of what you need help with -->
|
||||||
|
|
||||||
|
## What I'm Trying to Do
|
||||||
|
<!-- Describe your goal -->
|
||||||
|
|
||||||
|
## What I've Tried
|
||||||
|
<!-- List what you've already attempted -->
|
||||||
|
|
||||||
|
1.
|
||||||
|
2.
|
||||||
|
3.
|
||||||
|
|
||||||
|
## Account Information
|
||||||
|
- **Email**: (your account email)
|
||||||
|
- **User ID** (if known):
|
||||||
|
- **Subscription Tier**: Sandbox / Indie / Studio / Enterprise
|
||||||
|
|
||||||
|
## Relevant Documentation
|
||||||
|
<!-- Links to docs you've read -->
|
||||||
|
- [ ] I've searched [docs.evercatch.dev](https://docs.evercatch.dev)
|
||||||
|
- [ ] I've checked [existing issues](../../issues)
|
||||||
|
- [ ] I've reviewed the [API docs](https://docs.evercatch.dev/api)
|
||||||
|
|
||||||
|
## Error Messages
|
||||||
|
<!-- If applicable, paste any error messages -->
|
||||||
|
```
|
||||||
|
Paste error here
|
||||||
|
```
|
||||||
|
|
||||||
|
## Questions
|
||||||
|
1.
|
||||||
|
2.
|
||||||
|
|
||||||
|
## Screenshots
|
||||||
|
<!-- If applicable, add screenshots -->
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**💡 TIP:** Before opening a support ticket, check:
|
||||||
|
- [Documentation](https://docs.evercatch.dev)
|
||||||
|
- [API Reference](https://docs.evercatch.dev/api)
|
||||||
|
- [Existing Issues](../../issues)
|
||||||
|
- [Status Page](https://status.evercatch.dev)
|
||||||
47
.gitignore
vendored
47
.gitignore
vendored
@@ -1,47 +0,0 @@
|
|||||||
# Environment
|
|
||||||
.env
|
|
||||||
.env.*
|
|
||||||
!.env.example
|
|
||||||
|
|
||||||
# Python
|
|
||||||
__pycache__/
|
|
||||||
*.py[cod]
|
|
||||||
*.pyo
|
|
||||||
*.pyd
|
|
||||||
.Python
|
|
||||||
*.egg-info/
|
|
||||||
dist/
|
|
||||||
build/
|
|
||||||
.venv/
|
|
||||||
venv/
|
|
||||||
*.log
|
|
||||||
|
|
||||||
# Node / Angular
|
|
||||||
node_modules/
|
|
||||||
dist/
|
|
||||||
.angular/
|
|
||||||
*.tsbuildinfo
|
|
||||||
|
|
||||||
# Docker
|
|
||||||
.docker/
|
|
||||||
|
|
||||||
# IDE
|
|
||||||
.vscode/
|
|
||||||
.idea/
|
|
||||||
*.swp
|
|
||||||
*.swo
|
|
||||||
.DS_Store
|
|
||||||
Thumbs.db
|
|
||||||
|
|
||||||
# Coverage
|
|
||||||
.coverage
|
|
||||||
htmlcov/
|
|
||||||
coverage/
|
|
||||||
*.lcov
|
|
||||||
|
|
||||||
# Secrets
|
|
||||||
*.pem
|
|
||||||
*.key
|
|
||||||
*.p12
|
|
||||||
*.pfx
|
|
||||||
secrets/
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
# Evercatch Code Owners
|
|
||||||
# These users are automatically requested for review on PRs.
|
|
||||||
# Format: path @username
|
|
||||||
|
|
||||||
* @psmattas
|
|
||||||
80
CODE_OF_CONDUCT.md
Normal file
80
CODE_OF_CONDUCT.md
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
# Code of Conduct
|
||||||
|
|
||||||
|
## Our Pledge
|
||||||
|
|
||||||
|
We are committed to providing a welcoming, inclusive, and harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
|
||||||
|
|
||||||
|
## Our Standards
|
||||||
|
|
||||||
|
### ✅ Expected Behavior
|
||||||
|
|
||||||
|
- Be respectful and professional
|
||||||
|
- Use welcoming and inclusive language
|
||||||
|
- Accept constructive feedback gracefully
|
||||||
|
- Focus on what's best for the community
|
||||||
|
- Show empathy towards others
|
||||||
|
- Help others when you can
|
||||||
|
|
||||||
|
### ❌ Unacceptable Behavior
|
||||||
|
|
||||||
|
- Harassment, discrimination, or hate speech
|
||||||
|
- Trolling, insulting, or inflammatory comments
|
||||||
|
- Personal or political attacks
|
||||||
|
- Publishing others' private information
|
||||||
|
- Spam or excessive self-promotion
|
||||||
|
- Any conduct that would be inappropriate in a professional setting
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
This Code of Conduct applies to:
|
||||||
|
|
||||||
|
- Issue tracker discussions
|
||||||
|
- Pull request comments
|
||||||
|
- Community forums
|
||||||
|
- Email communications
|
||||||
|
- Social media interactions
|
||||||
|
- Any Evercatch community space
|
||||||
|
|
||||||
|
## Enforcement
|
||||||
|
|
||||||
|
### Reporting
|
||||||
|
|
||||||
|
If you experience or witness unacceptable behavior:
|
||||||
|
|
||||||
|
**Email:** [conduct@evercatch.dev](mailto:conduct@evercatch.dev)
|
||||||
|
|
||||||
|
Include:
|
||||||
|
- Description of the incident
|
||||||
|
- Date and time
|
||||||
|
- Links to evidence (if applicable)
|
||||||
|
- Your contact information
|
||||||
|
|
||||||
|
### Response
|
||||||
|
|
||||||
|
We will:
|
||||||
|
|
||||||
|
1. **Acknowledge** - Respond within 24 hours
|
||||||
|
2. **Investigate** - Review the incident
|
||||||
|
3. **Act** - Take appropriate action
|
||||||
|
4. **Follow-up** - Update you on the outcome
|
||||||
|
|
||||||
|
### Consequences
|
||||||
|
|
||||||
|
Violations may result in:
|
||||||
|
|
||||||
|
- **Warning** - First offense, minor violation
|
||||||
|
- **Temporary Ban** - Repeated violations
|
||||||
|
- **Permanent Ban** - Severe or repeated violations
|
||||||
|
- **Legal Action** - For threats, harassment, or illegal activity
|
||||||
|
|
||||||
|
## Attribution
|
||||||
|
|
||||||
|
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1.
|
||||||
|
|
||||||
|
## Questions?
|
||||||
|
|
||||||
|
Email [conduct@evercatch.dev](mailto:conduct@evercatch.dev)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Thank you for helping make Evercatch a welcoming community!** ❤️
|
||||||
317
CONTRIBUTING.md
317
CONTRIBUTING.md
@@ -1,63 +1,308 @@
|
|||||||
# Contributing to Evercatch
|
# Contributing to Evercatch
|
||||||
|
|
||||||
Thank you for contributing. Please read this guide before opening issues or PRs.
|
Thank you for your interest in contributing to Evercatch! 🎉
|
||||||
|
|
||||||
|
While Evercatch is currently **closed-source**, we welcome community contributions in several ways.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🌿 Branching
|
## 🐛 Bug Reports
|
||||||
|
|
||||||
Branch from `main` using the format `EC-ID-short-description`.
|
Found a bug? Please report it!
|
||||||
|
|
||||||
```bash
|
**Before reporting:**
|
||||||
git checkout -b EC-12-implement-stripe-inbound
|
1. Search [existing issues](../../issues) to avoid duplicates
|
||||||
```
|
2. Check [docs.evercatch.dev](https://docs.evercatch.dev) for solutions
|
||||||
|
3. Verify it's reproducible
|
||||||
|
|
||||||
|
**How to report:**
|
||||||
|
1. Use our [Bug Report Template](../../issues/new?template=bug_report.md)
|
||||||
|
2. Include clear steps to reproduce
|
||||||
|
3. Provide environment details (tier, timestamps, event IDs)
|
||||||
|
4. **Never include** API keys or sensitive data
|
||||||
|
|
||||||
|
**What happens next:**
|
||||||
|
- We'll acknowledge within 24-48 hours
|
||||||
|
- We'll add appropriate labels
|
||||||
|
- We'll investigate and provide updates
|
||||||
|
- Critical bugs are prioritized
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ✨ Commit Messages
|
## ✨ Feature Requests
|
||||||
|
|
||||||
Follow the Conventional Commits standard prefixed with the issue ID.
|
Have an idea? We'd love to hear it!
|
||||||
|
|
||||||
**Format:** `EC-00: <type>(scope): message`
|
**Before requesting:**
|
||||||
|
1. Check the [Public Roadmap](https://roadmap.evercatch.dev)
|
||||||
|
2. Search [existing requests](../../issues?q=is%3Aissue+label%3Afeature)
|
||||||
|
3. Think about the use case and impact
|
||||||
|
|
||||||
| Type | Description |
|
**How to request:**
|
||||||
| :--- | :--- |
|
1. Use our [Feature Request Template](../../issues/new?template=feature_request.md)
|
||||||
| `feat` | New feature |
|
2. Explain the problem it solves
|
||||||
| `fix` | Bug fix |
|
3. Describe your ideal solution
|
||||||
| `docs` | Documentation |
|
4. Share your use case
|
||||||
| `style` | Formatting |
|
5. Mention which tier would benefit
|
||||||
| `refactor` | Refactor |
|
|
||||||
| `perf` | Performance |
|
|
||||||
| `test` | Tests |
|
|
||||||
| `build` | Build system |
|
|
||||||
| `ci` | CI/CD config |
|
|
||||||
| `chore` | Maintenance |
|
|
||||||
|
|
||||||
**Examples:**
|
**What happens next:**
|
||||||
- `EC-12: feat(webhooks): implement stripe inbound endpoint`
|
- We'll review and discuss with you
|
||||||
- `EC-18: fix(relay): resolve double-delivery on retry`
|
- Popular requests get upvoted
|
||||||
|
- We'll add to roadmap if aligned with our vision
|
||||||
|
- You'll be notified when we start building it
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🔍 Pull Requests
|
## 📚 Documentation
|
||||||
|
|
||||||
- Link the issue in your PR description
|
Help us improve our docs!
|
||||||
- All CI checks must pass before requesting review
|
|
||||||
- Minimum one approval required to merge
|
**Ways to contribute:**
|
||||||
- Keep PRs focused — one feature or fix per PR
|
- Report unclear or missing documentation
|
||||||
|
- Suggest better examples
|
||||||
|
- Point out broken links
|
||||||
|
- Fix typos or grammar
|
||||||
|
|
||||||
|
**How to contribute:**
|
||||||
|
1. Use our [Documentation Template](../../issues/new?template=documentation.md)
|
||||||
|
2. Link to the specific docs page
|
||||||
|
3. Explain what's wrong
|
||||||
|
4. Suggest improvements
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🏷️ Labels
|
## 🧪 Beta Testing
|
||||||
|
|
||||||
Apply the appropriate labels to your issue or PR:
|
Want early access to new features?
|
||||||
|
|
||||||
- `type:` — what kind of change is this
|
**Join our beta program:**
|
||||||
- `priority:` — how urgent is it
|
1. Sign up at [evercatch.dev/beta](https://evercatch.dev/beta)
|
||||||
- `status:` — current state of the issue or PR
|
2. Get invited to private beta releases
|
||||||
|
3. Test new features before they're public
|
||||||
|
4. Provide feedback directly to the team
|
||||||
|
|
||||||
|
**Beta testers get:**
|
||||||
|
- ✨ Early access to features
|
||||||
|
- 🎯 Direct line to product team
|
||||||
|
- 🎁 Swag and perks
|
||||||
|
- 🏆 Recognition in release notes
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ❓ Questions
|
## 💬 Community Support
|
||||||
|
|
||||||
Open an issue with the `type: chore` label or reach out via the org README.
|
Help other users in the community!
|
||||||
|
|
||||||
|
**Ways to help:**
|
||||||
|
- Answer questions in issues
|
||||||
|
- Share your integration examples
|
||||||
|
- Write blog posts about Evercatch
|
||||||
|
- Create video tutorials
|
||||||
|
|
||||||
|
**Recognition:**
|
||||||
|
Top contributors get:
|
||||||
|
- 🎖️ "Community Helper" badge
|
||||||
|
- 💎 Free tier upgrades
|
||||||
|
- 🎁 Swag package
|
||||||
|
- 🌟 Featured in our newsletter
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔐 Security
|
||||||
|
|
||||||
|
**Found a security vulnerability?**
|
||||||
|
|
||||||
|
**DO NOT** open a public issue. Instead:
|
||||||
|
|
||||||
|
📧 **Email:** [security@evercatch.dev](mailto:security@evercatch.dev)
|
||||||
|
|
||||||
|
See our [Security Policy](SECURITY.md) for details.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 Integration Examples
|
||||||
|
|
||||||
|
Share how you're using Evercatch!
|
||||||
|
|
||||||
|
**We're looking for:**
|
||||||
|
- Code examples in different languages
|
||||||
|
- Integration guides for specific providers
|
||||||
|
- Creative use cases
|
||||||
|
- Performance optimizations
|
||||||
|
|
||||||
|
**How to share:**
|
||||||
|
1. Open a [Feature Request](../../issues/new?template=feature_request.md)
|
||||||
|
2. Label it as "integration-example"
|
||||||
|
3. Share your code (sanitized of secrets!)
|
||||||
|
4. Explain the use case
|
||||||
|
|
||||||
|
**We'll feature the best examples on:**
|
||||||
|
- [docs.evercatch.dev](https://docs.evercatch.dev)
|
||||||
|
- Our blog
|
||||||
|
- Social media
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📝 Blog Posts & Tutorials
|
||||||
|
|
||||||
|
Written about Evercatch?
|
||||||
|
|
||||||
|
**Let us know!** We'll:
|
||||||
|
- Share it on our blog
|
||||||
|
- Promote it on social media
|
||||||
|
- Link to it from our docs
|
||||||
|
- Send you swag 🎁
|
||||||
|
|
||||||
|
**Email:** [community@evercatch.dev](mailto:community@evercatch.dev)
|
||||||
|
|
||||||
|
**Include:**
|
||||||
|
- Link to your post
|
||||||
|
- Brief summary
|
||||||
|
- Your name/company
|
||||||
|
- Preferred social handle
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎨 Design Feedback
|
||||||
|
|
||||||
|
Got UI/UX suggestions?
|
||||||
|
|
||||||
|
**We love design feedback:**
|
||||||
|
- Dashboard improvements
|
||||||
|
- API response formats
|
||||||
|
- Documentation layout
|
||||||
|
- Error messages
|
||||||
|
|
||||||
|
**How to share:**
|
||||||
|
1. Open a [Feature Request](../../issues/new?template=feature_request.md)
|
||||||
|
2. Include screenshots or mockups
|
||||||
|
3. Explain the improvement
|
||||||
|
4. Share design rationale
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 Best Practices
|
||||||
|
|
||||||
|
### Writing Good Issues
|
||||||
|
|
||||||
|
**Do:**
|
||||||
|
- ✅ Use clear, descriptive titles
|
||||||
|
- ✅ Include all requested template information
|
||||||
|
- ✅ Provide context and examples
|
||||||
|
- ✅ Be respectful and professional
|
||||||
|
- ✅ Follow up on questions
|
||||||
|
|
||||||
|
**Don't:**
|
||||||
|
- ❌ Create duplicate issues
|
||||||
|
- ❌ Ask multiple unrelated questions in one issue
|
||||||
|
- ❌ Bump issues without new information
|
||||||
|
- ❌ Include API keys or sensitive data
|
||||||
|
- ❌ Demand features or fixes
|
||||||
|
|
||||||
|
### Communication Guidelines
|
||||||
|
|
||||||
|
**Be:**
|
||||||
|
- 🤝 Respectful and professional
|
||||||
|
- 📝 Clear and concise
|
||||||
|
- 💭 Open to discussion
|
||||||
|
- 🙏 Patient with response times
|
||||||
|
- ❤️ Kind to other community members
|
||||||
|
|
||||||
|
**Remember:**
|
||||||
|
- We're a small team
|
||||||
|
- Enterprise users get priority support
|
||||||
|
- Free tier users may wait longer
|
||||||
|
- Some features may not align with our roadmap
|
||||||
|
- We appreciate your understanding
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🏆 Recognition
|
||||||
|
|
||||||
|
### Hall of Fame
|
||||||
|
|
||||||
|
Top contributors get featured in our:
|
||||||
|
- Monthly newsletter
|
||||||
|
- Annual report
|
||||||
|
- About page
|
||||||
|
- Conference talks
|
||||||
|
|
||||||
|
### Contributor Tiers
|
||||||
|
|
||||||
|
**🥉 Bronze** (1-5 contributions)
|
||||||
|
- Thank you in release notes
|
||||||
|
- Digital badge
|
||||||
|
|
||||||
|
**🥈 Silver** (6-15 contributions)
|
||||||
|
- Free Indie plan (1 year)
|
||||||
|
- Swag package
|
||||||
|
- Featured in newsletter
|
||||||
|
|
||||||
|
**🥇 Gold** (16+ contributions)
|
||||||
|
- Free Studio plan (1 year)
|
||||||
|
- Premium swag
|
||||||
|
- Video call with founders
|
||||||
|
- Listed as "Top Contributor"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📅 Release Process
|
||||||
|
|
||||||
|
**Our schedule:**
|
||||||
|
- 🚀 **Major releases** - Quarterly
|
||||||
|
- 🔄 **Minor releases** - Monthly
|
||||||
|
- 🐛 **Bug fixes** - Weekly
|
||||||
|
- 🔥 **Hotfixes** - As needed
|
||||||
|
|
||||||
|
**Stay updated:**
|
||||||
|
- [Changelog](https://changelog.evercatch.dev)
|
||||||
|
- [Twitter](https://twitter.com/evercatch)
|
||||||
|
- [Newsletter](https://evercatch.dev/newsletter)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🤝 Code of Conduct
|
||||||
|
|
||||||
|
All contributors must follow our [Code of Conduct](CODE_OF_CONDUCT.md).
|
||||||
|
|
||||||
|
**Summary:**
|
||||||
|
- Be respectful and inclusive
|
||||||
|
- No harassment or discrimination
|
||||||
|
- Focus on constructive feedback
|
||||||
|
- Help create a welcoming community
|
||||||
|
|
||||||
|
**Violations:** Report to [conduct@evercatch.dev](mailto:conduct@evercatch.dev)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ❓ Questions?
|
||||||
|
|
||||||
|
**Not sure where to start?**
|
||||||
|
|
||||||
|
- 📚 Read the [docs](https://docs.evercatch.dev)
|
||||||
|
- 💬 Ask in [issues](../../issues)
|
||||||
|
- 📧 Email [community@evercatch.dev](mailto:community@evercatch.dev)
|
||||||
|
- 🐦 Tweet [@evercatch](https://twitter.com/evercatch)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎁 Thank You!
|
||||||
|
|
||||||
|
Every contribution matters, no matter how small:
|
||||||
|
- 🐛 Bug reports help us improve
|
||||||
|
- ✨ Feature ideas shape our roadmap
|
||||||
|
- 📚 Documentation helps other users
|
||||||
|
- 💬 Community support makes everyone's experience better
|
||||||
|
|
||||||
|
**We appreciate you!** ❤️
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<strong>Built with ❤️ by developers, for developers</strong>
|
||||||
|
<br/>
|
||||||
|
<a href="https://evercatch.dev">Website</a> •
|
||||||
|
<a href="https://docs.evercatch.dev">Docs</a> •
|
||||||
|
<a href="https://roadmap.evercatch.dev">Roadmap</a> •
|
||||||
|
<a href="https://status.evercatch.dev">Status</a>
|
||||||
|
</p>
|
||||||
|
|||||||
244
README.md
244
README.md
@@ -1,72 +1,230 @@
|
|||||||
# 📦 Repository Name
|
# 🎯 Evercatch
|
||||||
|
|
||||||
> Short one-line description of what this repository does.
|
> **The webhook infrastructure platform for developers who want simplicity without sacrificing power.**
|
||||||
|
|
||||||
|
Evercatch is a modern webhook ingestion and forwarding platform that captures, normalizes, and reliably delivers webhooks from any source to any destination. Built for developers, by developers.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🧭 Overview
|
## 📋 What is Evercatch?
|
||||||
|
|
||||||
Describe what this service/module is responsible for within the Evercatch platform.
|
Evercatch sits between your webhook providers (Stripe, SendGrid, GitHub, etc.) and your application, giving you:
|
||||||
|
|
||||||
|
- **📦 Unified Schema** - One normalized format for all webhook providers
|
||||||
|
- **🔄 Reliable Delivery** - Automatic retries with exponential backoff
|
||||||
|
- **📊 Event History** - Search, filter, and replay webhooks up to 90 days
|
||||||
|
- **⚡ Lightning Fast** - Sub-100ms webhook ingestion
|
||||||
|
- **🔐 Secure by Design** - API key authentication, filtered sensitive data
|
||||||
|
- **💰 Usage-Based Pricing** - Pay only for what you use, with generous free tier
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🛠️ Tech Stack
|
## 💡 Why Evercatch?
|
||||||
|
|
||||||
| Layer | Technology |
|
### The Problem
|
||||||
| :--- | :--- |
|
You're integrating with multiple services (Stripe for payments, SendGrid for emails, Shopify for orders). Each has:
|
||||||
| Language | — |
|
- Different webhook formats
|
||||||
| Framework | — |
|
- Different retry behaviors
|
||||||
| Key Dependencies | — |
|
- Different ways to verify authenticity
|
||||||
|
- No central dashboard to debug issues
|
||||||
|
|
||||||
|
**You spend more time managing webhooks than building your product.**
|
||||||
|
|
||||||
|
### The Evercatch Solution
|
||||||
|
Point all your webhooks at Evercatch. We:
|
||||||
|
1. ✅ Receive and validate webhooks from any provider
|
||||||
|
2. ✅ Normalize them to a unified schema
|
||||||
|
3. ✅ Store them with intelligent retention (7-90 days)
|
||||||
|
4. ✅ Forward them to your app with automatic retries
|
||||||
|
5. ✅ Give you a beautiful dashboard to search, filter, and replay events
|
||||||
|
|
||||||
|
**You focus on your product. We handle the webhooks.**
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🚀 Getting Started
|
## 🚀 Quick Start
|
||||||
|
|
||||||
### Prerequisites
|
|
||||||
|
|
||||||
- Docker & Docker Compose
|
|
||||||
- Node.js / Python (specify version)
|
|
||||||
|
|
||||||
### Local Development
|
|
||||||
|
|
||||||
|
### 1. Sign Up
|
||||||
```bash
|
```bash
|
||||||
# Clone the repo
|
curl -X POST https://api.evercatch.dev/api/v1/auth/signup \
|
||||||
git clone https://git.psmattas.com/Evercatch/REPO_NAME.git
|
-H "Content-Type: application/json" \
|
||||||
cd REPO_NAME
|
-d '{
|
||||||
|
"email": "you@example.com",
|
||||||
# Copy environment variables
|
"full_name": "Your Name",
|
||||||
cp .env.example .env
|
"country": "IE"
|
||||||
|
}'
|
||||||
# Start services
|
|
||||||
docker compose up -d
|
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
**Response:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"user": { "id": "550e8400-...", "email": "you@example.com" },
|
||||||
|
"api_key": {
|
||||||
|
"api_key": "ec_live_abc123...",
|
||||||
|
"prefix": "ec_live_abc1"
|
||||||
|
},
|
||||||
|
"subscription": { "tier": "sandbox", "status": "trialing" }
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
## 🌿 Branching & Commits
|
### 2. Point Your Webhooks at Evercatch
|
||||||
|
```
|
||||||
|
https://api.evercatch.dev/api/v1/webhooks/stripe/550e8400-...
|
||||||
|
```
|
||||||
|
|
||||||
All work follows the Evercatch contribution guide defined in the org README.
|
**Example: Configure Stripe**
|
||||||
|
1. Go to [Stripe Dashboard → Webhooks](https://dashboard.stripe.com/webhooks)
|
||||||
|
2. Click "Add Endpoint"
|
||||||
|
3. Enter: `https://api.evercatch.dev/api/v1/webhooks/stripe/550e8400-...`
|
||||||
|
4. Select events
|
||||||
|
5. Add header: `X-API-Key: ec_live_abc123...`
|
||||||
|
|
||||||
**Branch format:** `EC-ID-short-description`
|
### 3. Configure Your Destination
|
||||||
**Commit format:** `EC-00: type(scope): message`
|
```bash
|
||||||
|
curl -X POST https://api.evercatch.dev/api/v1/destinations \
|
||||||
|
-H "X-API-Key: ec_live_abc123..." \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d '{
|
||||||
|
"name": "Production API",
|
||||||
|
"url": "https://yourapp.com/webhooks",
|
||||||
|
"providers": ["stripe"],
|
||||||
|
"event_types": ["payment.*"]
|
||||||
|
}'
|
||||||
|
```
|
||||||
|
|
||||||
See [Evercatch Org README](https://git.psmattas.com/Evercatch) for full conventions.
|
### 4. That's It! 🎉
|
||||||
|
Evercatch now:
|
||||||
|
- ✅ Receives webhooks from Stripe
|
||||||
|
- ✅ Normalizes them to a unified schema
|
||||||
|
- ✅ Stores them for 24 hours (Sandbox tier)
|
||||||
|
- ✅ Forwards them to `yourapp.com/webhooks`
|
||||||
|
- ✅ Retries on failure
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ⚙️ CI/CD
|
## 📊 Pricing
|
||||||
|
|
||||||
Automated via Jenkins. Merges to `main` trigger staging deployments.
|
| Plan | Price | Events/mo | Retention | Destinations | Overage |
|
||||||
|
|------|-------|-----------|-----------|--------------|---------|
|
||||||
|
| **Sandbox** | €0 | 100k | 24 hours | 2 | — |
|
||||||
|
| **Indie** | €29 | 1M | 7 days | 10 | €0.50/100k |
|
||||||
|
| **Studio** | €99 | 10M | 30 days | Unlimited | €0.30/100k |
|
||||||
|
| **Enterprise** | €299 | 50M | 90 days | Unlimited | €0.20/100k |
|
||||||
|
|
||||||
| Pipeline | Status |
|
**All plans include:**
|
||||||
| :--- | :---: |
|
- ✅ Unlimited API keys
|
||||||
| Build |  |
|
- ✅ Real-time event forwarding
|
||||||
| Lint |  |
|
- ✅ Automatic retries
|
||||||
| Test |  |
|
- ✅ 99.9% uptime SLA
|
||||||
|
- ✅ Support via email
|
||||||
|
|
||||||
|
**Studio+ includes:**
|
||||||
|
- ✨ Full-text search
|
||||||
|
- ✨ Advanced filtering
|
||||||
|
- ✨ Event replay
|
||||||
|
- ✨ Custom retention
|
||||||
|
|
||||||
|
**Enterprise includes:**
|
||||||
|
- 🚀 Priority support
|
||||||
|
- 🚀 Custom SLAs
|
||||||
|
- 🚀 Dedicated Slack channel
|
||||||
|
- 🚀 SSO/SAML
|
||||||
|
- 🚀 Custom contracts
|
||||||
|
|
||||||
|
[**→ Start Free**](https://evercatch.dev/signup) · [**→ View Full Pricing**](https://evercatch.dev/pricing)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 📄 License
|
## 🐛 Found a Bug?
|
||||||
|
|
||||||
**Copyright © 2026 Evercatch.**
|
We want to fix it! **[→ Report a Bug](../../issues/new?template=bug_report.md)**
|
||||||
Proprietary and confidential. Unauthorised distribution is strictly prohibited.
|
|
||||||
|
Please include:
|
||||||
|
- Clear steps to reproduce
|
||||||
|
- Expected vs actual behavior
|
||||||
|
- Your subscription tier
|
||||||
|
- Event IDs (if applicable)
|
||||||
|
|
||||||
|
**Do NOT include API keys or sensitive data.**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✨ Have a Feature Idea?
|
||||||
|
|
||||||
|
We'd love to hear it! **[→ Request a Feature](../../issues/new?template=feature_request.md)**
|
||||||
|
|
||||||
|
Tell us:
|
||||||
|
- What problem it solves
|
||||||
|
- How you'd use it
|
||||||
|
- Which tier would benefit
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔐 Security Vulnerability?
|
||||||
|
|
||||||
|
**DO NOT open a public issue.**
|
||||||
|
|
||||||
|
**Email:** [security@evercatch.dev](mailto:security@evercatch.dev)
|
||||||
|
|
||||||
|
We'll respond within 24 hours. See our [Security Policy](SECURITY.md) for details.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ❓ Need Help?
|
||||||
|
|
||||||
|
- 📚 **Documentation**: [docs.evercatch.dev](https://docs.evercatch.dev)
|
||||||
|
- 📧 **Email Support**: [support@evercatch.dev](mailto:support@evercatch.dev)
|
||||||
|
- 💳 **Billing**: [billing@evercatch.dev](mailto:billing@evercatch.dev)
|
||||||
|
- **[→ Open a Support Ticket](../../issues/new?template=support_request.md)**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📚 Resources
|
||||||
|
|
||||||
|
- **Documentation:** [docs.evercatch.dev](https://docs.evercatch.dev)
|
||||||
|
- **API Reference:** [docs.evercatch.dev/api](https://docs.evercatch.dev/api)
|
||||||
|
- **Status Page:** [status.evercatch.dev](https://status.evercatch.dev)
|
||||||
|
- **Blog:** [blog.evercatch.dev](https://blog.evercatch.dev)
|
||||||
|
- **Roadmap:** [roadmap.evercatch.dev](https://roadmap.evercatch.dev)
|
||||||
|
- **Changelog:** [changelog.evercatch.dev](https://changelog.evercatch.dev)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🤝 Contributing
|
||||||
|
|
||||||
|
We welcome community contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for:
|
||||||
|
- Bug reports
|
||||||
|
- Feature requests
|
||||||
|
- Documentation improvements
|
||||||
|
- Beta testing
|
||||||
|
- Integration examples
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📜 Code of Conduct
|
||||||
|
|
||||||
|
All community members must follow our [Code of Conduct](CODE_OF_CONDUCT.md).
|
||||||
|
|
||||||
|
**TL;DR:** Be respectful, professional, and kind. No harassment, discrimination, or spam.
|
||||||
|
|
||||||
|
**Report violations:** [conduct@evercatch.dev](mailto:conduct@evercatch.dev)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⚖️ Legal
|
||||||
|
|
||||||
|
- **Terms of Service:** [evercatch.dev/terms](https://evercatch.dev/terms)
|
||||||
|
- **Privacy Policy:** [evercatch.dev/privacy](https://evercatch.dev/privacy)
|
||||||
|
- **SLA:** [evercatch.dev/sla](https://evercatch.dev/sla)
|
||||||
|
- **Acceptable Use:** [evercatch.dev/acceptable-use](https://evercatch.dev/acceptable-use)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<strong>Evercatch - No webhook left behind</strong>
|
||||||
|
<br/>
|
||||||
|
<a href="https://evercatch.dev">Website</a> •
|
||||||
|
<a href="https://docs.evercatch.dev">Docs</a> •
|
||||||
|
<a href="https://app.evercatch.dev">Dashboard</a> •
|
||||||
|
<a href="https://status.evercatch.dev">Status</a>
|
||||||
|
</p>
|
||||||
|
|||||||
105
SECURITY.md
105
SECURITY.md
@@ -2,23 +2,98 @@
|
|||||||
|
|
||||||
## Reporting a Vulnerability
|
## Reporting a Vulnerability
|
||||||
|
|
||||||
If you discover a security vulnerability in any Evercatch repository,
|
**We take security seriously.** If you discover a security vulnerability, please report it responsibly.
|
||||||
please do **not** open a public issue.
|
|
||||||
|
|
||||||
Report it privately to: **security@evercatch.io**
|
### 🔒 How to Report
|
||||||
|
|
||||||
Include:
|
**Email:** [security@evercatch.dev](mailto:security@evercatch.dev)
|
||||||
- A description of the vulnerability
|
|
||||||
- Steps to reproduce
|
|
||||||
- Potential impact
|
|
||||||
- Any suggested fixes if available
|
|
||||||
|
|
||||||
We will acknowledge receipt within 48 hours and aim to release a fix
|
**DO NOT:**
|
||||||
within 14 days depending on severity.
|
- ❌ Open a public GitHub/Gitea issue
|
||||||
|
- ❌ Disclose the vulnerability publicly
|
||||||
|
- ❌ Exploit the vulnerability
|
||||||
|
|
||||||
## Supported Versions
|
**DO:**
|
||||||
|
- ✅ Email us with detailed information
|
||||||
|
- ✅ Give us reasonable time to fix it
|
||||||
|
- ✅ Follow responsible disclosure practices
|
||||||
|
|
||||||
| Version | Supported |
|
### 📧 What to Include
|
||||||
| :--- | :---: |
|
|
||||||
| Latest `main` | ✅ |
|
Please include as much information as possible:
|
||||||
| Older releases | ❌ |
|
|
||||||
|
- **Description** - What is the vulnerability?
|
||||||
|
- **Impact** - What could an attacker do?
|
||||||
|
- **Steps to Reproduce** - How can we reproduce it?
|
||||||
|
- **Proof of Concept** - Code, screenshots, or examples
|
||||||
|
- **Suggested Fix** - If you have ideas
|
||||||
|
- **Your Contact Info** - For follow-up questions
|
||||||
|
|
||||||
|
### ⏱️ Our Response Process
|
||||||
|
|
||||||
|
1. **Acknowledgment** - We'll respond within 24 hours
|
||||||
|
2. **Assessment** - We'll evaluate severity and impact
|
||||||
|
3. **Updates** - We'll provide updates every 48 hours
|
||||||
|
4. **Fix** - We'll develop and test a patch
|
||||||
|
5. **Disclosure** - We'll coordinate public disclosure with you
|
||||||
|
6. **Credit** - We'll credit you in our security advisory (if desired)
|
||||||
|
|
||||||
|
### 🎯 Severity Levels
|
||||||
|
|
||||||
|
| Level | Description | Response Time |
|
||||||
|
|-------|-------------|---------------|
|
||||||
|
| **Critical** | Data breach, RCE, privilege escalation | 24 hours |
|
||||||
|
| **High** | Auth bypass, SQL injection, XSS | 48 hours |
|
||||||
|
| **Medium** | CSRF, info disclosure, DoS | 1 week |
|
||||||
|
| **Low** | Security misconfigurations | 2 weeks |
|
||||||
|
|
||||||
|
### 💰 Bug Bounty Program
|
||||||
|
|
||||||
|
We currently don't have a formal bug bounty program, but we may provide:
|
||||||
|
|
||||||
|
- 🎁 Swag (t-shirts, stickers)
|
||||||
|
- 💳 Free subscription upgrades
|
||||||
|
- 💵 Monetary rewards for critical vulnerabilities (case-by-case)
|
||||||
|
- 🏆 Public recognition (if desired)
|
||||||
|
|
||||||
|
### ✅ In Scope
|
||||||
|
|
||||||
|
- API endpoints (api.evercatch.dev)
|
||||||
|
- Web dashboard (app.evercatch.dev)
|
||||||
|
- Authentication/authorization
|
||||||
|
- Data storage and access controls
|
||||||
|
- Webhook forwarding logic
|
||||||
|
- Billing system
|
||||||
|
|
||||||
|
### ❌ Out of Scope
|
||||||
|
|
||||||
|
- Social engineering attacks
|
||||||
|
- Physical attacks
|
||||||
|
- DoS/DDoS attacks
|
||||||
|
- Spam or abuse of service
|
||||||
|
- Issues in third-party services (Stripe, SendGrid, etc.)
|
||||||
|
- Theoretical vulnerabilities without proof of concept
|
||||||
|
|
||||||
|
### 🛡️ Security Measures We Take
|
||||||
|
|
||||||
|
- **Encryption** - TLS 1.3 in transit, AES-256 at rest
|
||||||
|
- **Authentication** - API keys hashed with bcrypt
|
||||||
|
- **Rate Limiting** - Per-tier limits prevent abuse
|
||||||
|
- **Input Validation** - All inputs sanitized
|
||||||
|
- **Monitoring** - 24/7 monitoring for suspicious activity
|
||||||
|
- **Audits** - Regular security audits
|
||||||
|
- **Compliance** - SOC2 Type II (planned Q2 2026)
|
||||||
|
|
||||||
|
### 📜 Security Advisories
|
||||||
|
|
||||||
|
Past security advisories: [evercatch.dev/security](https://evercatch.dev/security)
|
||||||
|
|
||||||
|
### 📞 Contact
|
||||||
|
|
||||||
|
- **Security Team:** security@evercatch.dev
|
||||||
|
- **PGP Key:** [Download](https://evercatch.dev/pgp)
|
||||||
|
- **Status Page:** [status.evercatch.dev](https://status.evercatch.dev)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Thank you for helping keep Evercatch and our users safe!** 🔐
|
||||||
|
|||||||
244
SUPPORT.md
Normal file
244
SUPPORT.md
Normal file
@@ -0,0 +1,244 @@
|
|||||||
|
# Getting Support
|
||||||
|
|
||||||
|
Need help with Evercatch? We're here for you! 🙋
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚀 Quick Links
|
||||||
|
|
||||||
|
- 📚 **Documentation**: [docs.evercatch.dev](https://docs.evercatch.dev)
|
||||||
|
- 🔍 **API Reference**: [docs.evercatch.dev/api](https://docs.evercatch.dev/api)
|
||||||
|
- 📊 **Status Page**: [status.evercatch.dev](https://status.evercatch.dev)
|
||||||
|
- 🗺️ **Roadmap**: [roadmap.evercatch.dev](https://roadmap.evercatch.dev)
|
||||||
|
- 📝 **Changelog**: [changelog.evercatch.dev](https://changelog.evercatch.dev)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📚 Self-Service Resources
|
||||||
|
|
||||||
|
**Before contacting support, try these:**
|
||||||
|
|
||||||
|
### Documentation
|
||||||
|
- [Getting Started Guide](https://docs.evercatch.dev/getting-started)
|
||||||
|
- [Integration Guides](https://docs.evercatch.dev/integrations)
|
||||||
|
- [API Reference](https://docs.evercatch.dev/api)
|
||||||
|
- [Troubleshooting](https://docs.evercatch.dev/troubleshooting)
|
||||||
|
- [FAQ](https://docs.evercatch.dev/faq)
|
||||||
|
|
||||||
|
### Common Issues
|
||||||
|
- [Webhook not being received?](https://docs.evercatch.dev/troubleshooting/webhook-not-received)
|
||||||
|
- [Forwarding failed?](https://docs.evercatch.dev/troubleshooting/forwarding-failed)
|
||||||
|
- [Rate limited?](https://docs.evercatch.dev/troubleshooting/rate-limits)
|
||||||
|
- [Authentication errors?](https://docs.evercatch.dev/troubleshooting/auth-errors)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💬 Community Support
|
||||||
|
|
||||||
|
**Free for all users**
|
||||||
|
|
||||||
|
### Issue Tracker
|
||||||
|
Search or create issues for:
|
||||||
|
- 🐛 [Bug Reports](../../issues?q=label%3Abug)
|
||||||
|
- ✨ [Feature Requests](../../issues?q=label%3Afeature)
|
||||||
|
- ❓ [Questions](../../issues?q=label%3Aquestion)
|
||||||
|
|
||||||
|
**[→ Search Issues](../../issues)** · **[→ Ask a Question](../../issues/new?template=support_request.md)**
|
||||||
|
|
||||||
|
### Community Forum
|
||||||
|
- Ask questions
|
||||||
|
- Share tips and tricks
|
||||||
|
- Connect with other users
|
||||||
|
- **[→ Join Community](https://community.evercatch.dev)**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📧 Email Support
|
||||||
|
|
||||||
|
### General Support
|
||||||
|
**Email:** [support@evercatch.dev](mailto:support@evercatch.dev)
|
||||||
|
|
||||||
|
**Response times by tier:**
|
||||||
|
- **Sandbox**: 3-5 business days
|
||||||
|
- **Indie**: 2-3 business days
|
||||||
|
- **Studio**: 1-2 business days
|
||||||
|
- **Enterprise**: 4 hours (SLA)
|
||||||
|
|
||||||
|
**What to include:**
|
||||||
|
- Your account email or user ID
|
||||||
|
- Subscription tier
|
||||||
|
- Clear description of the issue
|
||||||
|
- Steps to reproduce
|
||||||
|
- Event IDs or timestamps (if applicable)
|
||||||
|
- What you've already tried
|
||||||
|
|
||||||
|
### Billing Support
|
||||||
|
**Email:** [billing@evercatch.dev](mailto:billing@evercatch.dev)
|
||||||
|
|
||||||
|
For questions about:
|
||||||
|
- Invoices and receipts
|
||||||
|
- Payment methods
|
||||||
|
- Subscription changes
|
||||||
|
- Overage charges
|
||||||
|
- Refund requests
|
||||||
|
|
||||||
|
**Response time:** 1-2 business days
|
||||||
|
|
||||||
|
### Account Issues
|
||||||
|
**Email:** [accounts@evercatch.dev](mailto:accounts@evercatch.dev)
|
||||||
|
|
||||||
|
For issues with:
|
||||||
|
- Login problems
|
||||||
|
- Password resets
|
||||||
|
- Email changes
|
||||||
|
- Account deletion
|
||||||
|
- Data exports
|
||||||
|
|
||||||
|
**Response time:** 1 business day
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚨 Urgent Issues
|
||||||
|
|
||||||
|
### Service Outage
|
||||||
|
1. Check [status.evercatch.dev](https://status.evercatch.dev)
|
||||||
|
2. Subscribe to status updates
|
||||||
|
3. Email [urgent@evercatch.dev](mailto:urgent@evercatch.dev) (Enterprise only)
|
||||||
|
|
||||||
|
### Security Vulnerability
|
||||||
|
**DO NOT use public support channels**
|
||||||
|
|
||||||
|
**Email:** [security@evercatch.dev](mailto:security@evercatch.dev)
|
||||||
|
|
||||||
|
See [SECURITY.md](SECURITY.md) for full policy.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🏢 Enterprise Support
|
||||||
|
|
||||||
|
**For Enterprise customers only**
|
||||||
|
|
||||||
|
### Dedicated Support
|
||||||
|
- 🎯 Dedicated Slack channel
|
||||||
|
- 📞 Phone support
|
||||||
|
- ⚡ 4-hour response SLA
|
||||||
|
- 🔧 Custom integration help
|
||||||
|
- 📊 Quarterly business reviews
|
||||||
|
|
||||||
|
### Contact Your Team
|
||||||
|
- **Account Manager**: Your dedicated contact
|
||||||
|
- **Enterprise Support**: [enterprise@evercatch.dev](mailto:enterprise@evercatch.dev)
|
||||||
|
- **Slack**: #evercatch-yourcompany (invite sent on onboarding)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📞 Contact Methods by Issue Type
|
||||||
|
|
||||||
|
| Issue Type | Best Channel | Response Time |
|
||||||
|
|------------|--------------|---------------|
|
||||||
|
| Bug Report | [Issue Tracker](../../issues/new?template=bug_report.md) | 24-48 hours |
|
||||||
|
| Feature Request | [Issue Tracker](../../issues/new?template=feature_request.md) | Review within 1 week |
|
||||||
|
| How-to Question | [Documentation](https://docs.evercatch.dev) or [Support Email](mailto:support@evercatch.dev) | Varies by tier |
|
||||||
|
| Billing | [billing@evercatch.dev](mailto:billing@evercatch.dev) | 1-2 business days |
|
||||||
|
| Account Issue | [accounts@evercatch.dev](mailto:accounts@evercatch.dev) | 1 business day |
|
||||||
|
| Service Outage | [Status Page](https://status.evercatch.dev) | Real-time updates |
|
||||||
|
| Security | [security@evercatch.dev](mailto:security@evercatch.dev) | 24 hours |
|
||||||
|
| Enterprise | Slack or [enterprise@evercatch.dev](mailto:enterprise@evercatch.dev) | 4 hours (SLA) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎓 Learning Resources
|
||||||
|
|
||||||
|
### Video Tutorials
|
||||||
|
- [Getting Started (5 min)](https://evercatch.dev/tutorials/getting-started)
|
||||||
|
- [Setting up Stripe Webhooks (3 min)](https://evercatch.dev/tutorials/stripe-setup)
|
||||||
|
- [Event Replay (4 min)](https://evercatch.dev/tutorials/event-replay)
|
||||||
|
|
||||||
|
### Blog Posts
|
||||||
|
- [Best Practices for Webhook Reliability](https://blog.evercatch.dev/webhook-reliability)
|
||||||
|
- [Debugging Failed Webhooks](https://blog.evercatch.dev/debugging-webhooks)
|
||||||
|
- [Scaling Webhook Infrastructure](https://blog.evercatch.dev/scaling-webhooks)
|
||||||
|
|
||||||
|
### Integration Guides
|
||||||
|
- [Stripe](https://docs.evercatch.dev/integrations/stripe)
|
||||||
|
- [SendGrid](https://docs.evercatch.dev/integrations/sendgrid)
|
||||||
|
- [GitHub](https://docs.evercatch.dev/integrations/github)
|
||||||
|
- [Shopify](https://docs.evercatch.dev/integrations/shopify)
|
||||||
|
- [More...](https://docs.evercatch.dev/integrations)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 Tips for Better Support
|
||||||
|
|
||||||
|
### Before Contacting Us
|
||||||
|
1. ✅ Check the [Status Page](https://status.evercatch.dev)
|
||||||
|
2. ✅ Search [existing issues](../../issues)
|
||||||
|
3. ✅ Review [documentation](https://docs.evercatch.dev)
|
||||||
|
4. ✅ Gather relevant information (event IDs, timestamps)
|
||||||
|
|
||||||
|
### When Contacting Us
|
||||||
|
1. ✅ Use descriptive subject lines
|
||||||
|
2. ✅ Include your subscription tier
|
||||||
|
3. ✅ Provide steps to reproduce
|
||||||
|
4. ✅ Share error messages or screenshots
|
||||||
|
5. ✅ Tell us what you've already tried
|
||||||
|
6. ❌ Don't include API keys or secrets
|
||||||
|
|
||||||
|
### Follow-Up
|
||||||
|
1. ✅ Respond promptly to our questions
|
||||||
|
2. ✅ Test suggested solutions
|
||||||
|
3. ✅ Confirm when issue is resolved
|
||||||
|
4. ✅ Share feedback on the support experience
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🌟 Other Ways to Get Help
|
||||||
|
|
||||||
|
### Twitter
|
||||||
|
- Tweet [@evercatch](https://twitter.com/evercatch)
|
||||||
|
- DM us for quick questions
|
||||||
|
- Not for urgent issues
|
||||||
|
|
||||||
|
### Newsletter
|
||||||
|
- Monthly tips and best practices
|
||||||
|
- **[Subscribe](https://evercatch.dev/newsletter)**
|
||||||
|
|
||||||
|
### Office Hours (Enterprise Only)
|
||||||
|
- Monthly video call with product team
|
||||||
|
- Q&A and roadmap discussions
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🗺️ Support Roadmap
|
||||||
|
|
||||||
|
**Coming Soon:**
|
||||||
|
- 💬 Live chat support (Studio+)
|
||||||
|
- 📞 Phone support (Enterprise)
|
||||||
|
- 🎥 Expanded video library
|
||||||
|
- 🤖 AI-powered docs search
|
||||||
|
- 🎓 Certification program
|
||||||
|
|
||||||
|
**Want early access?** Email [beta@evercatch.dev](mailto:beta@evercatch.dev)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⭐ Help Us Improve
|
||||||
|
|
||||||
|
**Had a great support experience?**
|
||||||
|
- Leave us a review
|
||||||
|
- Share on social media
|
||||||
|
- Refer a friend
|
||||||
|
|
||||||
|
**Support could be better?**
|
||||||
|
- Email [feedback@evercatch.dev](mailto:feedback@evercatch.dev)
|
||||||
|
- We read every message
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<strong>We're here to help you succeed!</strong>
|
||||||
|
<br/>
|
||||||
|
<a href="mailto:support@evercatch.dev">Email Support</a> •
|
||||||
|
<a href="https://docs.evercatch.dev">Documentation</a> •
|
||||||
|
<a href="https://status.evercatch.dev">Status</a>
|
||||||
|
</p>
|
||||||
Reference in New Issue
Block a user