package
0.0.4
Repository: https://github.com/orcatools/shaman.git
Documentation: pkg.go.dev

# README

shaman logo
Build Status

Shaman

Small, lightweight, api-driven dns server.

Routes:

RouteDescriptionPayloadOutput
POST /recordsAdds the domain and full recordjson domain objectjson domain object
PUT /recordsUpdate all domains and records (replaces all)json array of domain objectsjson array of domain objects
GET /recordsReturns a list of domains we have records fornilstring array of domains
PUT /records/{domain}Update domain's records (replaces all)json domain objectjson domain object
GET /records/{domain}Returns the records for that domainniljson domain object
DELETE /records/{domain}Delete a domainnilsuccess message

Usage Example:

add domain

$ curl -k -H "X-AUTH-TOKEN: secret" https://localhost:1632/records -d \
       '{"domain":"nanopack.io","records":[{"ttl":60,"class":"IN","type":"A","address":"127.0.0.2"}]}'
# {"domain":"nanopack.io.","records":[{"ttl":60,"class":"IN","type":"A","address":"127.0.0.2"}]}

list domains

$ curl -k -H "X-AUTH-TOKEN: secret" https://localhost:1632/records
# ["nanopack.io"]

or add ?full=true for the full records

$ curl -k -H "X-AUTH-TOKEN: secret" https://localhost:1632/records?full=true
# [{"domain":"nanopack.io.","records":[{"ttl":60,"class":"IN","type":"A","address":"127.0.0.2"}]}]

update domains

$ curl -k -H "X-AUTH-TOKEN: secret" https://localhost:1632/records -d \
       '[{"domain":"nanobox.io","records":[{"address":"127.0.0.1"}]}]' \
       -X PUT
# [{"domain":"nanobox.io.","records":[{"ttl":60,"class":"IN","type":"A","address":"127.0.0.1"}]}]

update domain

$ curl -k -H "X-AUTH-TOKEN: secret" https://localhost:1632/records/nanobox.io -d \
       '{"domain":"nanobox.io","records":[{"address":"127.0.0.2"}]}' \
       -X PUT
# {"domain":"nanobox.io.","records":[{"ttl":60,"class":"IN","type":"A","address":"127.0.0.2"}]}

delete domain

$ curl -k -H "X-AUTH-TOKEN: secret" https://localhost:1632/records/nanobox.io \
       -X DELETE
# {"msg":"success"}

get domain

$ curl -k -H "X-AUTH-TOKEN: secret" https://localhost:1632/records/nanobox.io
# {"err":"failed to find record for domain - 'nanobox.io'"}

oss logo

# Functions

Start starts shaman's http api.