Skip to content

feat(websites): improve DX with domain-centric UX, validation guidance, and dns zones validate#43

Merged
pcfreak30 merged 3 commits into
developfrom
feat/websites-dx-improvements
May 17, 2026
Merged

feat(websites): improve DX with domain-centric UX, validation guidance, and dns zones validate#43
pcfreak30 merged 3 commits into
developfrom
feat/websites-dx-improvements

Conversation

@pcfreak30

@pcfreak30 pcfreak30 commented May 17, 2026

Copy link
Copy Markdown
Member
  • Make domain the primary identifier for all website CRUD (id still works but not advertised)
  • Domain is now a positional arg for create: pinner websites create example.com --cid QmHash
  • Rename --target-hash to --cid across websites commands
  • Show validation token, DNS hosting status, and expiry in create/get/update output
  • Add next-steps guidance after create (TXT record instructions, validate commands)
  • Add actionable guidance when validation fails
  • Add dns zones validate command for nameserver delegation checks
  • Add ValidateZone to DNSService interface + implementation
  • Show validation info column in websites list
  • Support domain lookup in get/update/delete/validate (resolves via List)
  • Fix referenced but nonexistent 'pinner dns zones validate' command

This PR improves the developer experience for the websites and DNS commands by shifting to a domain-centric UX, adding validation guidance, and introducing a DNS zones validate command.

Key changes:

  • Domain-centric website commands: All website commands (get, update, delete, validate) now accept a domain name as the primary argument instead of a numeric ID. Numeric IDs still work, but domains are the preferred and documented interface. The create command now takes the domain as a positional argument instead of a --domain flag.

  • --cid flag replaces --target-hash: The --target-hash flag is deprecated in favor of the clearer --cid flag across website create and update commands.

  • New dns zones validate command: Validates that a DNS zone's nameservers are properly delegated to Pinner.xyz. Accepts either a domain name or zone ID. On failure, provides actionable next steps including the expected nameservers to configure.

  • Enhanced output and guidance: Website detail outputs (get, create, update) now use a field-based layout showing additional information (DNS Hosting, Expired status, Validation Token, Target Type, DNS Zone ID). After creating a website, step-by-step instructions are displayed for adding verification TXT records, DNSLink records, and running validation. Expired websites display a warning with a re-validation command. Failed validations show next steps for resolution.

  • Improved website list output: Added "DNS" and "VALIDATION" columns to the websites list table.

@kody-ai

This comment has been minimized.

@github-actions

github-actions Bot commented May 17, 2026

Copy link
Copy Markdown

Code Coverage Report

Total Coverage: 33.9%

Generated from commit: 0371805
Repository: LumeWeb/pinner-cli

pcfreak30 added 3 commits May 17, 2026 06:09
…e, and dns zones validate

- Make domain the primary identifier for all website CRUD (id still works but not advertised)
- Domain is now a positional arg for create: pinner websites create example.com --cid QmHash
- Rename --target-hash to --cid across websites commands
- Show validation token, DNS hosting status, and expiry in create/get/update output
- Add next-steps guidance after create (TXT record instructions, validate commands)
- Add actionable guidance when validation fails
- Add dns zones validate command for nameserver delegation checks
- Add ValidateZone to DNSService interface + implementation
- Show validation info column in websites list
- Support domain lookup in get/update/delete/validate (resolves via List)
- Fix referenced but nonexistent 'pinner dns zones validate' command
…unt endpoint

The auth-token path in websites, dns, and ipns handlers was routing to
the account endpoint (405 Method Not Allowed) instead of the IPFS
endpoint where these APIs actually live. The default factory path was
correct via GetIPFSEndpointSecure(), but the explicit auth-token branch
used GetAccountEndpointWithSecure(). Unified all to GetIPFSEndpointWithSecure().
…s for non-hosted

- Use CreateWithOptions/UpdateWithOptions to actually send dns_hosting_enabled
  flag to the API (previously ignored, API defaulted to true)
- Fix next steps to reflect dns hosting status: no zones validate for non-hosted
- Use dnslink=/targetType/cid in non-hosted DNSLink instructions (ipns vs ipfs)
- Use domain in validate commands (not numeric ID)
- Same endpoint fix for update handler (use response.DnsHostingEnabled)
@pcfreak30 pcfreak30 force-pushed the feat/websites-dx-improvements branch from 38c72c3 to 1e4702d Compare May 17, 2026 06:09
@kody-ai

kody-ai Bot commented May 17, 2026

Copy link
Copy Markdown

Kody Review Complete

Great news! 🎉
No issues were found that match your current review configurations.

Keep up the excellent work! 🚀

Kody Guide: Usage and Configuration
Interacting with Kody
  • Request a Review: Ask Kody to review your PR manually by adding a comment with the @kody start-review command at the root of your PR.

  • Validate Business Logic: Ask Kody to validate your code against business rules by adding a comment with the @kody -v business-logic command.

  • Provide Feedback: Help Kody learn and improve by reacting to its comments with a 👍 for helpful suggestions or a 👎 if improvements are needed.

Current Kody Configuration
Review Options

The following review options are enabled or disabled:

Options Enabled
Bug
Performance
Security
Business Logic

Access your configuration settings here.

@pcfreak30 pcfreak30 merged commit 57585f8 into develop May 17, 2026
2 checks passed
@pcfreak30 pcfreak30 deleted the feat/websites-dx-improvements branch May 17, 2026 09:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant