@withpotter/domain — module reference
HTTP routes this module mounts, plus its internal use-cases, entities, and repositories. The exhaustive request/response contract is the engine’s OpenAPI document at /docs; the layered structure below follows the package internal architecture.
HTTP routes
DomainController /domains
| Method | Path | Auth | Description |
|---|---|---|---|
GET | /domains/:id | Yes | Get domain |
GET | /domains/check | — | Check availability |
GET | /domains/dns-preview | — | Preview dns records |
GET | /domains/exchange-rate | — | Get exchange rate |
GET | /domains/price | Yes | Get domain price |
GET | /domains/pricing | — | Get tld pricing |
GET | /domains/tenant/:tenantId | Yes | Get tenant domains |
POST | /domains/:id/verify | Yes | Verify domain |
POST | /domains/connect | Yes | Connect external domain |
POST | /domains/purchase | Yes | Initiate purchase |
PATCH | /domains/:id/auto-renew | Yes | Set auto renew |
PATCH | /domains/:id/primary | Yes | Set primary domain |
DELETE | /domains/:id | Yes | Delete domain |
Internals
Use-cases
Application operations. Each is a single-purpose class with one execute() method.
| Use-case | Signature |
|---|---|
CheckDomainAvailabilityUseCase | execute(domain: string, limit = 10): Promise<EnhancedAvailabilityResponse> |
CompleteDomainPurchaseUseCase | execute(transactionId: string, paymentReference: string, customerEmail?: string): Promise<TenantDomainResponse> |
ConfigureDomainProjectUseCase | execute(domainId: string): Promise<void> |
ConnectExternalDomainUseCase | execute(tenantId: string, domain: string): Promise<ConnectExternalDomainResponse> |
DeleteDomainUseCase | execute(domainId: string, tenantId: string): Promise<{ success: boolean; message: string }> |
GetDomainByIdUseCase | execute(domainId: string): Promise<TenantDomainResponse> |
GetDomainByNameUseCase | execute(domainName: string): Promise<TenantDomain | null> |
GetDomainPriceUseCase | execute(domain: string, tenantId: string): Promise<DomainPriceResponse> |
GetTenantDomainsUseCase | execute(tenantId: string): Promise<TenantDomainResponse[]> |
InitiateDomainPurchaseUseCase | execute(tenantId: string, domain: string, callbackUrl: string, email: string): Promise<InitiatePurchaseResponse> |
PreviewDomainDnsUseCase | execute(domain: string): Promise<DnsPreviewResponse> |
RenewDomainUseCase | execute(transactionId: string, paymentReference: string): Promise<TenantDomainResponse> |
SetDomainAutoRenewUseCase | execute(domainId: string, enabled: boolean): Promise<TenantDomainResponse> |
SetPrimaryDomainUseCase | execute(tenantId: string, domainId: string): Promise<TenantDomainResponse> |
VerifyDomainUseCase | execute(domainId: string): Promise<TenantDomainResponse> |
Entities
Sequelize models owned by this module.
DomainPricing — table domain_pricing
| Field | Type |
|---|---|
id | string |
createdAt | Date |
updatedAt | Date |
DomainTransaction — table domain_transactions
| Field | Type |
|---|---|
id | string |
createdAt | Date |
updatedAt | Date |
TenantDomain — table tenant_domains
| Field | Type |
|---|---|
id | string |
createdAt | Date |
updatedAt | Date |
TenantDomainPricing — table tenant_domain_pricing
| Field | Type |
|---|---|
id | string |
createdAt | Date |
updatedAt | Date |
Repositories
Data-access classes wrapping the entities.
DomainTransactionRepository
findByPaymentReference · findPendingByPaymentReference · findByTenantAndDomain · listByTenant · markCompleted · markFailed
TenantDomainRepository
findByDomain · findByTenantAndDomain · findPrimaryByTenant · listByTenant · listByStatus · listExpiringSoon · clearPrimaryForTenant · setAsPrimary
Services
DomainPricingEngineSimpleExchangeRateService
Providers
PlatformDomainProvider
Generated from the module’s source. Routes are relative to the engine root
(default http://localhost:3001). For full request/response schemas use the live
OpenAPI document.