I've been working on a successor to VegaDNS 0.x over the past year, and am at the point that I'd like to get some more folks to help test it. This should be considered alpha quality, and not run in production yet.
This rewrite had a few goals in mind:
- Modern, maintainable design (OOP)
- REST API driven
- Unit and integration testing
- Improved authorization model
- Modern GUI
- Include CLI
- Open source, but move to Apache 2.0 license
With that in mind, the following tools were chosen for the rewrite
- API is written in python, and is based on flask-restufl and peewee ORM
- CLI written in python, with a thin REST wrapper (for integrations), and a click based CLI interface. I'll likely be writing a thin REST wrapper in PHP for those that have an interest.
- JS UI written using ReactJS/Flux, and Bootstrap 3, built with Webpack
API authentication supports the following:
- OAuth 2.0 (section 4.4 client_credentials) for API key usage
- Cookies for JS UI
- Basic Authentication
- IP Based authentication for exports (i.e. tinydns server)
Old authorization model:
- Owner, Group Owner, End User
- Limits domain ownership to up to two people for non senior admins
New authorization model:
- Group based approach
- Allows for many to many relationships
- Groups are mapped to domains with unique permissions
- Senior admins manage domain mappings
I've had this running for a few months on an internal project, so it has some mileage on it, but I'd like to get some more folks using it. There are a handful if things missing, like log viewing endpoints, some sorting options, and the ability to change domain owner via the UI, but I'll get those done soon.
Any help in testing installation and usage are greatly appreciated!