Skip to content

Implement missing API endpoints#87

Merged
JoshSEdwards merged 6 commits into
vinyldns:masterfrom
JoshSEdwards:implement-missing-api-endpoints
May 21, 2026
Merged

Implement missing API endpoints#87
JoshSEdwards merged 6 commits into
vinyldns:masterfrom
JoshSEdwards:implement-missing-api-endpoints

Conversation

@JoshSEdwards
Copy link
Copy Markdown
Contributor

@JoshSEdwards JoshSEdwards commented Jan 6, 2026

Summary

  • add health/status endpoints: ping/health/color/metrics_prometheus, get_status/update_status
  • add zone endpoints: get_zone_details, list_zone_backend_ids, list_zone_changes_failure,
    list_deleted_zones
  • add record set endpoints: get_record_set_count, list_record_set_change_history,
    list_record_set_changes_failure
  • add ownership transfer helpers for record sets (request/approve/reject/cancel)
  • add group endpoints: get_group_change, list_group_valid_domains
  • add user endpoints: get_user, lock_user, unlock_user
  • add unit tests for all new endpoints

Files Touched

  • src/vinyldns/client.py, src/vinyldns/status.py
  • src/vinyldns/zone.py, src/vinyldns/record.py, src/vinyldns/membership.py
  • tests/test_health_status.py, tests/test_zone_extras.py
  • tests/test_record_extras.py, tests/test_membership_extras.py, tests/test_users.py

Manual Test Checklist

Prereqs:

  • VINYLDNS_HOST, VINYLDNS_ACCESS_KEY, VINYLDNS_SECRET_KEY set
  • Admin creds for status update, user lock/unlock, ACL rules, batch review
  • Sample IDs: zone_id, group_change_id, user_id/username, record set fqdn/type

Health & Monitoring:

  • ping returns PONG
  • health returns OK (no error)
  • color returns blue or green
  • metrics_prometheus returns non-empty text

Status:

  • get_status returns processingDisabled, color, keyName, version
  • update_status flips processingDisabled (admin)

Zone:

  • list_zone_backend_ids returns non-empty list
  • get_zone_details includes admin group ID/name
  • list_deleted_zones returns expected entries
  • list_zone_changes_failure returns entries (can be empty)

RecordSet:

  • get_record_set_count returns integer
  • list_record_set_change_history returns list for fqdn/type
  • list_record_set_changes_failure returns entries (can be empty)
  • ownership transfer request/approve/reject/cancel succeeds with valid record set and owner group
    IDs

Group:

  • list_group_valid_domains returns entries
  • get_group_change returns change details

User (admin):

  • get_user returns id/username/groups
  • lock_user returns Locked
  • unlock_user returns Unlocked

Automated Tests

  • python3 setup.py test
  • tox -e check,py3

VDNS-250

Add support for the following VinylDNS API endpoints:

Health & Status:
- ping, health, color, metrics_prometheus
- get_status, update_status

Zones:
- get_zone_details (with adminGroupId/adminGroupName)
- list_zone_backend_ids
- list_zone_changes_failure
- list_deleted_zones

Record Sets:
- get_record_set_count
- list_record_set_change_history
- list_record_set_changes_failure
- Ownership transfer: request, approve, reject, cancel

Groups:
- get_group_change
- list_group_valid_domains

Users:
- get_user
- lock_user, unlock_user

Also adds unit tests for all new endpoints.
@JoshSEdwards JoshSEdwards force-pushed the implement-missing-api-endpoints branch from 3dd389b to 565d2b5 Compare January 6, 2026 22:48
Comment thread src/vinyldns/status.py Outdated
Comment thread src/vinyldns/client.py Outdated
Comment thread src/vinyldns/client.py Outdated
@codecov-commenter
Copy link
Copy Markdown

Welcome to Codecov 🎉

Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests.

Thanks for integrating Codecov - We've got you covered ☂️

@nspadaccino nspadaccino self-requested a review May 21, 2026 18:40
Copy link
Copy Markdown
Member

@nspadaccino nspadaccino left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@JoshSEdwards JoshSEdwards merged commit a03001c into vinyldns:master May 21, 2026
2 checks passed
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.

4 participants