| 1 | Things I'd like to make happen
 | 
|---|
| 2 | 
 | 
|---|
| 3 | 2009/09/04
 | 
|---|
| 4 |  - Retain offset/perpage/sort-order and related info in the session and/or user profile
 | 
|---|
| 5 |    - need to keep separate record of domain list and record list settings [COMPLETE]
 | 
|---|
| 6 |  - Support groups (currently group id is hardcoded to 1 anywhere it might be referenced) [COMPLETE]
 | 
|---|
| 7 | 
 | 
|---|
| 8 | 2009/09/10
 | 
|---|
| 9 |  - Security/hardening
 | 
|---|
| 10 |    - "if a=1 then elsif a=2 then elsif a=3 then else die neatly"
 | 
|---|
| 11 |    - work correctly with taint mode
 | 
|---|
| 12 |    - use SQL execution parameters to reduce quoting screwups
 | 
|---|
| 13 |    - throw garbage at it and see what sticks
 | 
|---|
| 14 |    - throw deliberately malformed data and see what sticks
 | 
|---|
| 15 |  - rDNS matching
 | 
|---|
| 16 |    - tag'n'warn records where forward and reverse are both supposed to be published
 | 
|---|
| 17 |      "here" - mainly prevents unneccessary record duplication
 | 
|---|
| 18 | 
 | 
|---|
| 19 | 2009/12/10
 | 
|---|
| 20 |  - MOTD
 | 
|---|
| 21 |  - Encapsulate all SQL in DNSDB.pm
 | 
|---|
| 22 | 
 | 
|---|
| 23 | 2009/12/15
 | 
|---|
| 24 |  - Wrap non-critical bits like Net::Whois::Raw so that they don't just cause a failure,
 | 
|---|
| 25 |    and the bits that need them are only available if they're installed
 | 
|---|
| 26 | 
 | 
|---|
| 27 | 2009/12/16
 | 
|---|
| 28 |  - Add record type editor - note, just to edit which types are visible
 | 
|---|
| 29 |  - Subclass some of the specifics of record handling?
 | 
|---|
| 30 |    - would let users create plugin code to support arbitrary types
 | 
|---|
| 31 |  - Push DB name, host, username, password into config file [COMPLETE]
 | 
|---|
| 32 | 
 | 
|---|
| 33 | 2009/12/17
 | 
|---|
| 34 |  - "complete rewrite" target:  one table of objects, one set of functions;  hooks
 | 
|---|
| 35 |    to manipulate "special" data for given types of objects?  (even merging
 | 
|---|
| 36 |    domain/group/user objects would reduce a lot of code almost-duplication)
 | 
|---|
| 37 | 
 | 
|---|
| 38 | 2010/04/07
 | 
|---|
| 39 |  - Show domain's group in domain record display
 | 
|---|
| 40 | 
 | 
|---|
| 41 | 2010/06/24
 | 
|---|
| 42 |  - VegaDNS is apparently derived from NicTool (nictool.com), and, of course, has
 | 
|---|
| 43 |    somewhat fewer features.  *sigh* [COMMENT]
 | 
|---|
| 44 | 
 | 
|---|
| 45 | 2011/02/17
 | 
|---|
| 46 |  - Multi-column sort in record list, possibly domain, group, and user lists too.
 | 
|---|
| 47 |    This could probably integrate with the previous point;  there's a lot of
 | 
|---|
| 48 |    copy-paste-tweak between the four types of abstract object.
 | 
|---|
| 49 | 
 | 
|---|
| 50 | 2011/07/14
 | 
|---|
| 51 |  - Warnings:
 | 
|---|
| 52 |    - non-best-practice SRV record (not _service._class)
 | 
|---|
| 53 |    - long TXT records (tinyDNS support for TCP DNS responses is limited and often not configured)
 | 
|---|
| 54 |  - Auto-rDNS on adding A record
 | 
|---|
| 55 | 
 | 
|---|
| 56 | 2011/07/18
 | 
|---|
| 57 |  - "Move domain to group <x>" [PARTIAL - only for domains, separate "bulk operations" page]
 | 
|---|
| 58 | 
 | 
|---|
| 59 | 2011/07/20
 | 
|---|
| 60 |  - Replaceable web templates
 | 
|---|
| 61 |  - Stolen^Wborrowed from Curtis Bruneau's API, sort of):
 | 
|---|
| 62 |    - Multiple templates per group, including sane default template (integrate with default records;  add
 | 
|---|
| 63 |      "template" column)
 | 
|---|
| 64 |    - Deep search (eg record content) from high UI layer
 | 
|---|
| 65 |    - Locations/views
 | 
|---|
| 66 | 
 | 
|---|
| 67 | 2011/08/31
 | 
|---|
| 68 |  - OOPishness:  Once things are converted to put all entities/objects in the same table
 | 
|---|
| 69 |    (with a single series of IDs to uniquely identify any give entity), create subobjects
 | 
|---|
| 70 |    for user, group, domain, record, and defrec
 | 
|---|
| 71 | 
 | 
|---|
| 72 | 2011/09/09
 | 
|---|
| 73 |  - Options to bypass the "do you really want to delete <x>" pages, and Just Do It(TM).
 | 
|---|
| 74 |    Should increase logging verbosity so it can be more easily undone (er, sorta)
 | 
|---|
| 75 |  - Steal Vega's active_sessions table?
 | 
|---|
| 76 | 
 | 
|---|
| 77 | 2011/09/21
 | 
|---|
| 78 |  - (Ab)use DNS RR types in the range 65280 to 65534 ("Reserved for Private Use")
 | 
|---|
| 79 |    for eg A+PTR, or bulk-rDNS default PTR
 | 
|---|
| 80 | 
 | 
|---|
| 81 | 2011/10/07
 | 
|---|
| 82 |  - Watch for undefined parameters
 | 
|---|
| 83 |  - Componentizing:
 | 
|---|
| 84 |    - Add custid field to domains (and/or groups?) to more easily
 | 
|---|
| 85 |      allow retrieving a restricted set of domains
 | 
|---|
| 86 |    - For production use, turn on "no errors on template var doesn't exist"
 | 
|---|
| 87 |      for HTML::Template
 | 
|---|
| 88 |    - Config knob to allow loading complete custom templates (fall back to stock ones)
 | 
|---|
| 89 | 
 | 
|---|
| 90 | 2011/10/13
 | 
|---|
| 91 |  - Catch "delete group with stuff still in it" errors.  Or possibly offer a flag to
 | 
|---|
| 92 |    really "YES DAMMIT I WANT IT ALL GONE" delete all children of a group with stuff in it.
 | 
|---|
| 93 | 
 | 
|---|
| 94 | 2011/10/20
 | 
|---|
| 95 |  - Add "back to <parent>" link in log for domain
 | 
|---|
| 96 |  - Add subgroup count to group list
 | 
|---|
| 97 |  - Add log link to users, domains, groups? listings
 | 
|---|
| 98 |  - Validate A -> \d+\.\d+\.\d+\.\d+, AAAA -> [\da-f:]+ before
 | 
|---|
| 99 |    feeding to NetAddr:IP;  don't want to enter a v6 address on
 | 
|---|
| 100 |    an A record or vice versa [COMPLETE]
 | 
|---|
| 101 | 
 | 
|---|
| 102 | 2011/10/27
 | 
|---|
| 103 |  - Add support for converting a bare "@" as the hostname into the domain name a la BIND
 | 
|---|
| 104 |    - do this on entry, or export?
 | 
|---|
| 105 | 
 | 
|---|
| 106 | 2011/11/03
 | 
|---|
| 107 |  - Log security violations in a separate log, accessible to a restricted group of users (ie, admin-only)
 | 
|---|
| 108 | 
 | 
|---|
| 109 | 2011/11/08
 | 
|---|
| 110 |  - Instead of logging failures alongside everything else, only log when a
 | 
|---|
| 111 |    fail-counter for that action has passed a threshold.  Track the fail
 | 
|---|
| 112 |    count in the session.
 | 
|---|
| 113 | 
 | 
|---|
| 114 | 2011/11/10
 | 
|---|
| 115 |  TODOs and ideas are now (mostly) in Trac (https://secure.deepnet.cx/trac/dnsadmin)
 | 
|---|