Commit Graph

14 Commits

Author SHA1 Message Date
45d4e45bb1 Reworked update code, split v4/v6 updates
- collect dns updatees individually, so that we clear A and AAAA separately if and only if needed.
- made nft AddIP call more resilient against partial updates
- updated nft processing code to no longer add nil to a v4/v6 set which would end in an invalid call to AddIP when updating nft. call it individually now.
- updated samples with real world traces from an AVM Box
2021-09-25 11:56:50 +02:00
a23043ba5f Added state perstistance
- Define new state directory to hold the last dns update config and push it into the config, default to state/
- Refactoring, move updaterequest into service and out of webapp. Keep only the form parsing there. Specifically, move the processing code into the service package, it shouldn't be in the webapp.
- Add code to load and save the last updaterequest into a state file (watch out to keep the possibly unhashed password out of it).
- Add a command line option to load all available state files given the current configured user list from the command line.
- Refactor user configuartion loading to separate it from user authentication, claen up the code.
- We now require the username in the config, to make handling it in state updates easier. This will allow easier transition to DB style storage anyway.
- Update .gitignore
2021-09-18 15:38:49 +02:00
9952343cda Cleaned up config handling
- moved everything to cmd/root.go
- Sanitize all paths to full absolute ones
- Set a config key with the current config basedir
- moved default config logging to a central location
- resolve user config dir relative to config dir
- change cwd to config dir
2021-08-25 21:17:19 +02:00
a6e52d9d3d Fix: viper.UnmarshalKey ignores defaults
This seems to be a bug in viper, as soon as we're working with subkeys, things fall apart
2021-08-24 17:03:59 +02:00
467a89c4ba Cleanup
- Default DNS at localhost
- updated gitignore
- updated default config yml
2021-08-24 16:49:17 +02:00
ae3b1d0897 First working implementation
- implemented update request processing
- separated host and domain name in config (req. for DNS updates)
- enhanced NFT update validation
- cleaned up example user
- cleand up logging in update request
- moved appropriate config into user request struct
2021-08-24 16:44:52 +02:00
2feb864551 DNS logging optimized 2021-08-24 16:41:06 +02:00
fbf10f9d1b Next implementation steps
- Simplified UpdateRequest to the minimum required
- renamed test user to example
- removed user property from yml config, it is given by the file name.
- splitted server code analogous to command line code so that each handler has its own file.
- made viper confgi in userconfig internal
- added validation to userconfig
- added helper to combaine an IID with a v6net in userconfig
2021-08-23 20:41:32 +02:00
fbfd75bf99 Rewrote entire NFT Update Logic
- more flexibility by a struct based approch
- allows for collection of all changes from a complex confi
- pushes everything at once to NFT
2021-08-22 20:45:36 +02:00
5242cc98f7 Normalized function naming 2021-08-22 14:50:52 +02:00
7b93ff425d - Added sample default config (needs manual updating)
- Reworked service and webapi config to Viper unmarshalling
- Added Pretty Printers to config
2021-08-22 14:46:48 +02:00
9a31bbc912 - Clarified web handler name
- Implemented Configuration Loader with unauthorized error handling
- More elaborate test user config
- Use Viper Unmarshalling for User Config loading
- Centralized password hasing code
2021-08-22 14:36:55 +02:00
9f1b9f1690 Refactorization and further implementation
- renamed clientoinfo to updaterequest
- added userconfig skeleton
- added hashed password skeleton
2021-08-21 20:35:08 +02:00
7dd11a0879 First basic version
- NFT and DNS Update skeletons
- Integrated viper configuration management
- Integrated cobra CLI management
- Basic webservice skeleton
2021-08-20 21:10:59 +02:00