happyDomain/model
Pierre-Olivier Mercier 5ccf81173f feat(checker): add domain availability watchlist
Introduce a DomainAvailabilityWatch entity (model, storage, usecase and
REST endpoints) letting a user track a domain they do not own and get
notified the moment it becomes available for registration. A dedicated
domain_availability checker reads WHOIS/RDAP via pkg/domaininfo and inverts
the status (OK while registered, Crit once free) so the existing dispatcher
fires exactly once on the transition. The scheduler enumerates watches and
enqueues the check, carrying the watch id in CheckTarget.DomainId; autofill
and notification payloads fall back to the watch store to resolve the name.
Watches are included in per-user backup/restore. The web UI adds an
availability watchlist page and navigation entry.
2026-06-06 20:14:01 +09:00
..
api.go chore: replace interface{} with any across the codebase 2026-03-01 17:38:04 +07:00
auth_user.go api-admin: auth user controller delegates to AdminAuthUserUsecase 2026-05-10 20:17:55 +08:00
authentication.go Clean architecture refactoring 2025-04-22 14:15:03 +02:00
backup.go feat(checker): add domain availability watchlist 2026-06-06 20:14:01 +09:00
captcha.go Add Altcha captcha provider support 2026-02-13 12:29:14 +07:00
change_password.go Clean architecture refactoring 2025-04-22 14:15:03 +02:00
checker.go checker: reject checker IDs containing the storage key separator 2026-06-06 20:14:01 +09:00
checker_test.go checker: reject checker IDs containing the storage key separator 2026-06-06 20:14:01 +09:00
config.go checker: add -disable-checker-scheduler to skip scheduler auto-start 2026-05-29 09:04:17 +08:00
correction.go Add binding:required tags and narrow input types for API endpoints 2026-04-04 22:05:28 +07:00
domain.go feat(domains): support monitor-only domains without a provider 2026-06-06 20:14:01 +09:00
domain_availability.go feat(checker): add domain availability watchlist 2026-06-06 20:14:01 +09:00
domain_info.go New checker: domain contact consistency 2026-04-16 15:22:51 +07:00
domain_test.go Add comprehensive test coverage for model package 2026-01-09 15:34:31 +07:00
email_autoconfig.go api: add Caddy on-demand TLS ask hook for autoconfig hostnames 2026-04-29 18:51:51 +07:00
errors.go feat(checker): add domain availability watchlist 2026-06-06 20:14:01 +09:00
errors_test.go fix: give ErrAuthUserNotFound a distinct message from ErrUserNotFound 2026-04-16 02:14:55 +07:00
form.go checkers: introduce checker subsystem foundation 2026-04-16 13:45:13 +07:00
hexastring.go Relicense the project to AGPL-3.0 2023-12-24 11:42:00 +01:00
hexastring_test.go Add comprehensive test coverage for model package 2026-01-09 15:34:31 +07:00
identifier.go Clean architecture refactoring 2025-04-22 14:15:03 +02:00
identifier_test.go Add comprehensive test coverage for model package 2026-01-09 15:34:31 +07:00
insight.go insights: Send stats about users' settings 2025-06-12 20:07:57 +02:00
iterators.go chore: replace interface{} with any across the codebase 2026-03-01 17:38:04 +07:00
login.go security: decouple failure tracking from captcha provider 2026-03-12 15:03:49 +07:00
logs.go Add readonly struct tags to immutable model fields 2026-04-04 22:05:28 +07:00
mailer.go Refactor usecases: create intermediate structs to facilitate tests 2025-05-28 23:02:22 +02:00
newsletter.go Clean architecture refactoring 2025-04-22 14:15:03 +02:00
notification.go notification: add notification models and error sentinels 2026-04-30 14:05:01 +00:00
oidc.go Move config struct to model, avoid dependancy to storage 2025-05-28 22:00:02 +02:00
orchestrator.go Rework zone diff/apply flow: separate diff from provider API, support partial apply 2026-03-16 19:46:09 +07:00
provider.go Add user data export (GDPR/DSAR) 2026-05-25 12:25:43 +08:00
provider_settings.go Add context.Context to ProviderUsecase and DomainUsecase interfaces 2026-03-30 21:54:54 +07:00
provider_specs.go Clean architecture refactoring 2025-04-22 14:15:03 +02:00
provider_test.go Add comprehensive test coverage for model package 2026-01-09 15:34:31 +07:00
record.go Can add and update records in service 2026-01-09 15:01:51 +07:00
record_test.go Add comprehensive test coverage for model package 2026-01-09 15:34:31 +07:00
resolver.go resolver: POST /api/resolver/dmarc-report-auth endpoint 2026-04-28 17:58:14 +07:00
service.go Add user data export (GDPR/DSAR) 2026-05-25 12:25:43 +08:00
service_specs.go Add binding:required tags and narrow input types for API endpoints 2026-04-04 22:05:28 +07:00
service_test.go Add comprehensive test coverage for model package 2026-01-09 15:34:31 +07:00
session.go api-admin: session controller delegates to AdminSessionUsecase 2026-05-10 20:17:55 +08:00
session_test.go Add comprehensive test coverage for model package 2026-01-09 15:34:31 +07:00
tidy.go tidy: add drop_invalid flag to delete undecodable records 2026-04-22 12:45:45 +07:00
user.go api-admin: user controller delegates to UserUsecase + AdminUserUsecase 2026-05-10 20:17:55 +08:00
user_quota.go checker: enforce MaxChecksPerDay quota with interval-aware throttling 2026-04-16 15:18:43 +07:00
user_quota_test.go model: add UserQuota struct for admin-controlled per-user limits 2026-04-16 15:18:43 +07:00
user_test.go Add comprehensive test coverage for model package 2026-01-09 15:34:31 +07:00
userclaim.go Add format:"date-time" struct tags to time.Time model fields 2026-04-04 22:05:28 +07:00
userinfo.go Clean architecture refactoring 2025-04-22 14:15:03 +02:00
userregistration.go Add CAPTCHA support for login and registration 2026-02-13 11:31:37 +07:00
usersettings.go Fix Swagger annotations in controllers 2026-04-04 22:05:28 +07:00
userspecialaction.go Refactor auth_user usecase: split in multiple files 2025-05-28 23:02:22 +02:00
version.go Add binding:required tags and narrow input types for API endpoints 2026-04-04 22:05:28 +07:00
zone.go refactor: use Identifier.Equals() instead of bytes.Equal 2026-05-25 12:25:43 +08:00
zone_service.go Refactor domain/provider/zone usecase: split in multiple files 2025-05-28 23:02:22 +02:00
zone_test.go refactor: decompose Analyzer into recordPool and serviceAccumulator 2026-03-14 11:06:49 +07:00