Commit graph

7 commits

Author SHA1 Message Date
callumalpass
735706ead4 docs: tighten accuracy, fix cross-links, and consolidate unreleased notes 2026-02-21 13:41:32 +11:00
callumalpass
d6c1f0974a docs: add explanatory context and simplify tone 2026-02-15 15:41:12 +11:00
callumalpass
46d99e67ba docs: align API, privacy, and command docs with current behavior 2026-02-08 12:33:54 +11:00
Callum Alpass
7c26e9d3ca docs: add webhook transform examples and documentation
- Add comprehensive transform examples for Discord, Slack, Teams, and generic JSON
- Include ready-to-use JavaScript transforms with rich formatting
- Add JSON template examples showing variable substitution
- Create detailed README with usage instructions, debugging tips, and best practices
- Link transform examples from main webhooks documentation
- Support all webhook events including new recurring.instance.completed event

Examples include:
- discord-webhook.js: Rich embeds with colors and emojis
- slack-webhook.js: Slack-compatible attachments and formatting
- teams-webhook.json: Microsoft Teams MessageCard format
- simple-template.json: Basic JSON template for custom APIs
2025-08-13 12:46:08 +10:00
Callum Alpass
3047598757 docs(webhooks): add comprehensive transform files documentation
- Document how transform files work with detailed implementation notes
- Add complete JavaScript transform examples for Discord, Slack, Teams
- Document JSON template system with variable substitution syntax
- Include advanced examples: conditional logic, data enrichment, multi-service routing
- Add security considerations and debugging strategies
- Provide step-by-step testing approach for transform development
- Document sandboxed execution environment and limitations
- Add real-world examples for popular services integration
2025-08-13 10:53:24 +10:00
Callum Alpass
f432c2d334 feat(webhooks): add reminder.triggered event for notification integrations
Add webhook support for TaskNotes reminder/notification system to enable
external integrations when reminders fire.

**Changes:**
- Add `reminder.triggered` webhook event type to types.ts
- Trigger webhook in NotificationService.triggerNotification() method
- Include comprehensive reminder payload data:
  - Task information
  - Reminder details (type, timing, message)
  - Notification metadata (time, type, message)
- Update webhook modal to include reminder events
- Add reminder webhook documentation with integration examples
- Update test webhook server to handle reminder events

**Webhook Payload:**
The reminder.triggered event includes:
- Full task context
- Reminder configuration (relative/absolute, offset, description)
- Actual notification time and message sent
- Notification type (system/in-app) used

**Integration Examples:**
- Mobile push notifications
- Smart home system alerts
- Cross-platform reminder sync
- Custom notification routing

This enables external systems to receive real-time notifications when
TaskNotes reminders fire, perfect for mobile apps, smart home integration,
or custom notification systems that extend beyond Obsidian.
2025-08-12 20:13:25 +10:00
Callum Alpass
cf301b0935 feat(api): add webhook support for real-time event notifications
Webhooks enable real-time integrations by sending HTTP POST requests to
configured
endpoints when TaskNotes events occur. This opens up powerful automation
and
sync capabilities for external services.

**New Webhook Features:**
- Complete webhook management system with CRUD operations
- 12+ event types covering tasks, time tracking, and pomodoro sessions
- HMAC-SHA256 signature verification for security
- Automatic retries with exponential backoff
- Delivery tracking and failure monitoring
- Auto-disable after repeated failures

**Event Types:**
- Task events: created, updated, deleted, completed, archived,
unarchived
- Time tracking: started, stopped
- Pomodoro: started, completed, interrupted
- Recurring: instance completed

**API Endpoints:**
- POST /api/webhooks - Register new webhook
- GET /api/webhooks - List configured webhooks
- DELETE /api/webhooks/{id} - Remove webhook
- GET /api/webhooks/deliveries - View delivery history

**Settings Integration:**
- Webhook management UI in HTTP API settings tab
- Event subscription selection
- Enable/disable individual webhooks
- Success/failure statistics display

**Security & Reliability:**
- HMAC signatures for payload verification
- 10-second timeout per delivery
- 3 automatic retries with backoff
- Webhook secrets auto-generated
- Non-blocking async delivery

**Documentation:**
- Comprehensive webhook guide with examples
- Integration patterns for popular services
- Security best practices
- Testing utilities and sample code

**Testing:**
- Webhook test server (test-webhook.js)
- Signature verification examples
- Debug logging and monitoring

This enables powerful integrations like:
- Real-time sync with Todoist, TickTick, Notion
- Slack/Discord notifications
- Time tracking integration (Toggl, Clockify)
- Custom automation workflows
- Analytics and reporting dashboards

The webhook system is designed to be reliable, secure, and performant
while
maintaining TaskNotes' core responsiveness.
2025-08-12 20:13:25 +10:00