refactor: rename Processor to Webhook and Webhook to Entrypoint

The top-level entity that groups entrypoints and targets is now called
Webhook (was Processor). The inbound URL endpoint entity is now called
Entrypoint (was Webhook). This rename affects database models, handler
comments, routes, and README documentation.

closes #12
This commit is contained in:
clawbot
2026-03-01 15:44:22 -08:00
committed by user
parent b5cf4c3d2f
commit 7bbe47b943
10 changed files with 63 additions and 63 deletions

View File

@@ -0,0 +1,14 @@
package database
// Entrypoint represents an inbound URL endpoint that feeds into a webhook
type Entrypoint struct {
BaseModel
WebhookID string `gorm:"type:uuid;not null" json:"webhook_id"`
Path string `gorm:"uniqueIndex;not null" json:"path"` // URL path for this entrypoint
Description string `json:"description"`
Active bool `gorm:"default:true" json:"active"`
// Relations
Webhook Webhook `json:"webhook,omitempty"`
}

View File

@@ -1,11 +1,11 @@
package database
// Event represents a webhook event
// Event represents a captured webhook event
type Event struct {
BaseModel
ProcessorID string `gorm:"type:uuid;not null" json:"processor_id"`
WebhookID string `gorm:"type:uuid;not null" json:"webhook_id"`
WebhookID string `gorm:"type:uuid;not null" json:"webhook_id"`
EntrypointID string `gorm:"type:uuid;not null" json:"entrypoint_id"`
// Request data
Method string `gorm:"not null" json:"method"`
@@ -14,7 +14,7 @@ type Event struct {
ContentType string `json:"content_type"`
// Relations
Processor Processor `json:"processor,omitempty"`
Webhook Webhook `json:"webhook,omitempty"`
Entrypoint Entrypoint `json:"entrypoint,omitempty"`
Deliveries []Delivery `json:"deliveries,omitempty"`
}

View File

@@ -1,16 +0,0 @@
package database
// Processor represents an event processor
type Processor struct {
BaseModel
UserID string `gorm:"type:uuid;not null" json:"user_id"`
Name string `gorm:"not null" json:"name"`
Description string `json:"description"`
RetentionDays int `gorm:"default:30" json:"retention_days"` // Days to retain events
// Relations
User User `json:"user,omitempty"`
Webhooks []Webhook `json:"webhooks,omitempty"`
Targets []Target `json:"targets,omitempty"`
}

View File

@@ -10,14 +10,14 @@ const (
TargetTypeLog TargetType = "log"
)
// Target represents a delivery target for a processor
// Target represents a delivery target for a webhook
type Target struct {
BaseModel
ProcessorID string `gorm:"type:uuid;not null" json:"processor_id"`
Name string `gorm:"not null" json:"name"`
Type TargetType `gorm:"not null" json:"type"`
Active bool `gorm:"default:true" json:"active"`
WebhookID string `gorm:"type:uuid;not null" json:"webhook_id"`
Name string `gorm:"not null" json:"name"`
Type TargetType `gorm:"not null" json:"type"`
Active bool `gorm:"default:true" json:"active"`
// Configuration fields (JSON stored based on type)
Config string `gorm:"type:text" json:"config"` // JSON configuration
@@ -27,6 +27,6 @@ type Target struct {
MaxQueueSize int `json:"max_queue_size,omitempty"`
// Relations
Processor Processor `json:"processor,omitempty"`
Webhook Webhook `json:"webhook,omitempty"`
Deliveries []Delivery `json:"deliveries,omitempty"`
}

View File

@@ -8,6 +8,6 @@ type User struct {
Password string `gorm:"not null" json:"-"` // Argon2 hashed
// Relations
Processors []Processor `json:"processors,omitempty"`
APIKeys []APIKey `json:"api_keys,omitempty"`
Webhooks []Webhook `json:"webhooks,omitempty"`
APIKeys []APIKey `json:"api_keys,omitempty"`
}

View File

@@ -1,14 +1,16 @@
package database
// Webhook represents a webhook endpoint that feeds into a processor
// Webhook represents a webhook processing unit that groups entrypoints and targets
type Webhook struct {
BaseModel
ProcessorID string `gorm:"type:uuid;not null" json:"processor_id"`
Path string `gorm:"uniqueIndex;not null" json:"path"` // URL path for this webhook
Description string `json:"description"`
Active bool `gorm:"default:true" json:"active"`
UserID string `gorm:"type:uuid;not null" json:"user_id"`
Name string `gorm:"not null" json:"name"`
Description string `json:"description"`
RetentionDays int `gorm:"default:30" json:"retention_days"` // Days to retain events
// Relations
Processor Processor `json:"processor,omitempty"`
User User `json:"user,omitempty"`
Entrypoints []Entrypoint `json:"entrypoints,omitempty"`
Targets []Target `json:"targets,omitempty"`
}

View File

@@ -5,8 +5,8 @@ func (d *Database) Migrate() error {
return d.db.AutoMigrate(
&User{},
&APIKey{},
&Processor{},
&Webhook{},
&Entrypoint{},
&Target{},
&Event{},
&Delivery{},