https://github.com/cobbzilla/omnium
Omnium is a JavaScript abstraction layer across cloud DNS services
https://github.com/cobbzilla/omnium
Last synced: 9 months ago
JSON representation
Omnium is a JavaScript abstraction layer across cloud DNS services
- Host: GitHub
- URL: https://github.com/cobbzilla/omnium
- Owner: cobbzilla
- License: apache-2.0
- Created: 2022-08-15T21:54:25.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2022-08-16T17:12:10.000Z (almost 4 years ago)
- Last Synced: 2025-05-24T11:08:36.598Z (about 1 year ago)
- Language: JavaScript
- Size: 49.8 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
Omnium
======
Omnium is a JavaScript abstraction layer across cloud DNS services.
It supports apps that are agnostic to cloud DNS services.
# Using cloud DNS services
const { omnium } = require('omnium')
const godaddy = await omnium('godaddy', godaddy_key, godaddy_secret)
const route53 = await omnium('route53', aws_key, aws_secret, {region: 'us-east-1'})
// list DNS records for a domain
route53.list('www.example.com') // --> returns an array of DNS record objects
// add a DNS record
route53.add('www.example.com', 'A', 'some-hostname', '192.168.0.1')
// remove a DNS record
route53.remove('www.example.com', 'A', 'some-hostname')
// The above commands work identically if route53 is replace with godaddy
# Driver Interface
A driver is any JS file that exports an 'apiClient' function like this:
function apiClient (key, secret, opts)
* key: your API key
* secret: your API secret
* opts: depends on the driver
* For GoDaddy, this can be omitted
* For Route53, the 'region' property can be specified (default is us-east-1)
The object that the apiClient function returns must support these functions:
// Find DNS records that match the given domain, type (if provided) and name (if provided)
async list (domain, type = '', name = '')
// Add a DNS record to a domain with the specified TTL
async add (domain, type, name, ttl, data = null)
// Remove a DNS record from a domain
async remove (domain, type, name)