Files
TimeTracker/app/models/__init__.py
Dries Peeters a18de04a6a feat: Add webhook system for real-time event notifications
Implement comprehensive webhook system supporting 40+ event types with automatic retries, HMAC signatures, delivery tracking, REST API, and admin UI. Integrates with Activity logging for automatic event triggering.

- Database: Add webhooks and webhook_deliveries tables (migration 046)

- API: Full CRUD endpoints with read:webhooks/write:webhooks scopes

- UI: Admin interface for webhook management and testing

- Service: Automatic retry with exponential backoff every 5 minutes

- Security: HMAC-SHA256 signature verification

- Tests: Model and service tests included

- Docs: Complete integration guide with examples
2025-11-14 13:52:56 +01:00

90 lines
2.5 KiB
Python

from .user import User
from .project import Project
from .time_entry import TimeEntry
from .task import Task
from .settings import Settings
from .invoice import Invoice, InvoiceItem
from .invoice_template import InvoiceTemplate
from .currency import Currency, ExchangeRate
from .tax_rule import TaxRule
from .payments import Payment, CreditNote, InvoiceReminderSchedule
from .reporting import SavedReportView, ReportEmailSchedule
from .client import Client
from .client_prepaid_consumption import ClientPrepaidConsumption
from .task_activity import TaskActivity
from .expense_category import ExpenseCategory
from .mileage import Mileage
from .per_diem import PerDiem, PerDiemRate
from .extra_good import ExtraGood
from .comment import Comment
from .focus_session import FocusSession
from .recurring_block import RecurringBlock
from .rate_override import RateOverride
from .saved_filter import SavedFilter
from .project_cost import ProjectCost
from .kanban_column import KanbanColumn
from .time_entry_template import TimeEntryTemplate
from .activity import Activity
from .user_favorite_project import UserFavoriteProject
from .client_note import ClientNote
from .weekly_time_goal import WeeklyTimeGoal
from .expense import Expense
from .permission import Permission, Role
from .api_token import ApiToken
from .calendar_event import CalendarEvent
from .budget_alert import BudgetAlert
from .import_export import DataImport, DataExport
from .invoice_pdf_template import InvoicePDFTemplate
from .audit_log import AuditLog
from .recurring_invoice import RecurringInvoice
from .invoice_email import InvoiceEmail
from .webhook import Webhook, WebhookDelivery
__all__ = [
"User",
"Project",
"TimeEntry",
"Task",
"Settings",
"Invoice",
"InvoiceItem",
"Client",
"TaskActivity",
"Comment",
"FocusSession",
"RecurringBlock",
"RateOverride",
"SavedFilter",
"ProjectCost",
"InvoiceTemplate",
"Currency",
"ExchangeRate",
"TaxRule",
"Payment",
"CreditNote",
"InvoiceReminderSchedule",
"SavedReportView",
"ReportEmailSchedule",
"KanbanColumn",
"TimeEntryTemplate",
"Activity",
"UserFavoriteProject",
"ClientNote",
"WeeklyTimeGoal",
"Expense",
"Permission",
"Role",
"ApiToken",
"CalendarEvent",
"BudgetAlert",
"DataImport",
"DataExport",
"InvoicePDFTemplate",
"ClientPrepaidConsumption",
"AuditLog",
"RecurringInvoice",
"InvoiceEmail",
"Webhook",
"WebhookDelivery",
]