All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
- Add NotifyProvisioner (port + adapter) using real notify admin API - Create notify account + send key + host grant per project - Inject NOTIFY_API_KEY/HOST/FROM into component deployments - Store NOTIFY_URL, NOTIFY_ADMIN_KEY, RESEND_API_KEY in credential store - Add setup-notify.sh for one-time host/provider/domain setup - Add NOTIFY_ADMIN_KEY constant to domain/credential.go - Wire provisioner in main.go with connection test guard - Add .claude/guides/services/notify.md and CLAUDE.md entry Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
24 lines
893 B
Go
24 lines
893 B
Go
package port
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/orchard9/rdev/internal/domain"
|
|
)
|
|
|
|
// NotifyProvisioner manages per-project email delivery accounts on the notify service.
|
|
type NotifyProvisioner interface {
|
|
// CreateProjectNotify creates a notify account and send key for a project.
|
|
// Grants the account access to the shared host and returns credentials.
|
|
CreateProjectNotify(ctx context.Context, projectID string) (*domain.NotifyCredentials, error)
|
|
|
|
// DeleteProjectNotify removes the notify account for a project.
|
|
DeleteProjectNotify(ctx context.Context, projectID string) error
|
|
|
|
// GetProjectNotify returns notify credentials for a project, or nil if not provisioned.
|
|
GetProjectNotify(ctx context.Context, projectID string) (*domain.NotifyCredentials, error)
|
|
|
|
// TestConnection verifies the admin API key and notify service are reachable.
|
|
TestConnection(ctx context.Context) error
|
|
}
|