Commit graph

110 commits

Author SHA1 Message Date
e0d8526577 Add Altcha captcha provider support
Some checks are pending
continuous-integration/drone/push Build is running
2026-02-13 12:29:14 +07:00
0090054324 Add CAPTCHA support for login and registration
Integrates optional bot protection on the registration endpoint (always
required when a provider is configured) and the login endpoint (triggered
after N consecutive failures for the same IP or email address).

Supported providers: hCaptcha, reCAPTCHA v2, Cloudflare Turnstile.
2026-02-13 11:31:37 +07:00
bee17f7761 Add missing json tag on all structs for better OpenAPI generation 2026-01-26 12:34:55 +08:00
2d39de5eb9 Add service initialization endpoint with DNS type detection
Implement backend-driven service initialization to replace hazardous
frontend initialization logic. Services can now provide custom
initialization via ServiceInitializer interface or get sensible
defaults automatically.
2026-01-12 10:19:33 +07:00
6add2f220e Refactor storage layer to use key-value template pattern
All checks were successful
continuous-integration/drone/tag Build is passing
Extract common key-value storage operations into internal/storage/kvtpl/
template directory. This consolidates duplicated logic from both leveldb
and inmemory implementations into reusable generic functions.

Key changes:
- Create kvtpl/ package with generic KV storage operations
- Consolidate iterator implementation using generics
- Update migration functions to use new template structure
- Refactor tests to work with new storage interface

This prepares the codebase for easier addition of new storage backends
by providing a consistent template layer.
2026-01-09 17:17:04 +07:00
21b9072bba Add comprehensive test coverage for model package 2026-01-09 15:34:31 +07:00
ae0f9018bb Can add and update records in service 2026-01-09 15:01:51 +07:00
f5911cb256 Can delete a record in a service 2026-01-08 18:15:37 +07:00
437cf4d80b Create copy of returned records 2026-01-07 22:26:19 +07:00
df825f1f50 Services stores records instead of abstact data 2026-01-07 22:26:19 +07:00
d6e49e0440 Update go modules and dnscontrol to v4.29.0 2025-12-24 19:03:33 +07:00
8fa8efcefc insights: Send stats about users' settings
Some checks failed
continuous-integration/drone/push Build is failing
2025-06-12 20:07:57 +02:00
ebb5d34be5 Use ListRecordsUC when generating zonefile 2025-06-10 09:53:44 +02:00
ce91b49a73 Create a usecase from API to extract domain creation on provider
Fixes a security issue where a user can create a domain on a provider
while DisableProviders option was set
2025-06-09 15:38:11 +02:00
b0e0ab6d9e Create a usecase from provider controller 2025-06-09 15:38:11 +02:00
f63860af83 Can create domain directly on the provider if supported
All checks were successful
continuous-integration/drone/push Build is passing
Closes: https://github.com/happyDomain/happydomain/issues/24
2025-05-28 23:02:22 +02:00
b527e0ed26 Refactor usecases: create intermediate structs to facilitate tests 2025-05-28 23:02:22 +02:00
b2b6467575 Refactor domain/provider/zone usecase: split in multiple files 2025-05-28 23:02:22 +02:00
1408e04f45 Refactor domain's logs usecase: split in multiple files 2025-05-28 23:02:22 +02:00
0495ab4693 Refactor auth_user usecase: split in multiple files 2025-05-28 23:02:22 +02:00
cffbc104ae Refactor session usecase: split in multiple files 2025-05-28 22:00:02 +02:00
356e733e76 Move config struct to model, avoid dependancy to storage 2025-05-28 22:00:02 +02:00
b575a17674 Improve error report 2025-05-28 22:00:02 +02:00
e186a33f89 refactor: Move storage interfaces to usecases 2025-05-28 22:00:02 +02:00
b77e2b8c3a Refactor App to add clarity 2025-05-22 15:46:06 +02:00
fb971236f9 Rename Service to Usecase to be consistent 2025-05-22 15:46:06 +02:00
2f21ebee44 Rename ProviderId attribute 2025-05-22 15:46:06 +02:00
2e9b9e6adf Standardize databases errors 2025-05-22 15:46:06 +02:00
5d0fe5edb5 Remove plural structs not used as struct 2025-05-22 15:46:06 +02:00
d427ef4377 Move tidy operation to a usecase 2025-05-22 15:46:05 +02:00
401ba892f7 Use iterators in return to ListAll database functions 2025-05-22 15:46:05 +02:00
f4daca892e Simplify database calls and move the logic in usecases: providers 2025-05-22 15:46:05 +02:00
9152a2697b Simplify database calls and move the logic in usecases: domains 2025-05-22 15:46:05 +02:00
6c2aaa2f6e Standardize owner field name for domains and providers 2025-05-22 15:46:05 +02:00
b25072377d auth: Extract login through session in middleware 2025-04-22 23:35:25 +02:00
2e5f36a11e Allow registering a domain multiple time
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
Fixes: https://github.com/happyDomain/happydomain/issues/19
Fixes: https://github.com/happyDomain/happydomain/issues/32
2025-04-22 14:32:10 +02:00
f36337e14c Reports usage statistics to happydomain.org 2025-04-22 14:29:08 +02:00
959b800286 If zone is commited, automatically fork on editing 2025-04-22 14:15:04 +02:00
ba09d123fd Store a link to parent zone when derivate 2025-04-22 14:15:04 +02:00
1c7e0b84c3 Use hashes to identify corrections to apply instead of full diff message 2025-04-22 14:15:04 +02:00
0edc2e66e2 Clean architecture refactoring 2025-04-22 14:15:03 +02:00
9c6de4fdae Don't require origin when generating service comment 2025-04-22 14:15:03 +02:00
e7877e9363 Make the records relatives inside the storage 2025-04-19 15:10:05 +02:00
70e271ce84 Generate dns.RR, limit dnscontrol structs 2025-04-19 15:10:05 +02:00
8f34c45f00 Store raw DNS records under Services instead of custom attributes 2025-04-19 15:10:05 +02:00
109023aa75 GenerateRRs can now return error 2025-04-19 15:10:05 +02:00
9acd96a23c Refactor providers decoding 2024-10-23 19:43:57 +02:00
3d9aecf214 Refactor session to use gorilla like sessions 2024-05-23 17:29:34 +02:00
fab386534c Try to ListZones when validating providers settings
Bug: https://github.com/happyDomain/happydomain/issues/20
2024-02-06 14:28:37 +01:00
1035610be0 Relicense the project to AGPL-3.0 2023-12-24 11:42:00 +01:00