Here are a few ideas for new features that could be implemented in Maintain. Please read the Maintain Code Contribution Guide first.
If there is already a task for this in the JIRA bug tracking system
, we also link to it from here.
Feel free to add your own ideas to this page, following the same list style as the other suggestions.
Simple Tasks
- Bug Fixes
If you need somewhere to start, you can look through the issues filed as bugs in JIRA
. Most bug fixes are fairly simple.
- Documentation
Documenting code that is currently undocumented.
- Module Hooks
Adding hooks to meaningful places in the Maintain code. Meaningful means giving the most possible flexibility with the fewest number of hooks.
- OpenID authentication (MNT-1531
)
To learn more about what OpenID is: What is OpenID?
- Authentication module for a forum or CMS

Write a module to allow shared authentication between a forum or CMS application and maintain. This would allow network administrators and users to discuss changes in the network without having to keep the authentication information in several places.
Moderate Tasks
- Central Cron Job Facility (MNT-1565
)
- Make distribution specific packages
Make Maintain packages for Debian, Gentoo, Fedora, SuSE etc.
- Network Creation Wizard
Make a wizard to walk people through the creation of a new network, including creating a zone, domains, subnets, ranges etc.
Complex Tasks
- Internationalization (MNT-1543
)
- Logging
A more sophisticated way of logging what people are doing in Maintain. Currently, there is a log table that gets written on every change, but a more dynamic way of logging (e.g. PEAR:Log
would be very helpful. Especially when it comes to displaying and/or analyzing logs.
- Maintain Core and Module Update Service (MNT-1544
)
- Modularize core Maintain functionality
Take current Maintain core functionality that is self-contained, put it into a core module and add a module hook.
- Module Hooks in Datalists (MNT-1466
)
- Move configuration into the Database (MNT-1407
)
- Network Import
Especially big networks need functionality to import their hosts etc into Maintain. Maintain would have to access their DHCP and DNS configs or servers and suggest a "best fit" representation of the data in there.
- Native BIND support
Even though Maintain already supports BIND through TinyDNS export and DNS zone transfers, a module that exports data natively to BIND configs would enable the user to run BIND without the need for a TinyDNS instance.
Overhauls
- Create a testing suite
Implementing a PHPUnit test suite and/or a phing
build script
- IPv6 Support
Add support for the IPv6 protocol into Maintain while retaining the current IPv4 functionality. There have already been a few thoughts about that here.
- PHP5 compatibility (MNT-1541
)
- Add database modification ability in modules
Modules currently cannot easily have their own entries in the database (a module writer could currently do it with raw SQL). There is a wiki page discussing this issue.