I am expecting to put together a next-gen admin tool after I create an integration module allowing CentiPOS and LedgerSMB to integrate (my project for the week or so following the 1.4 launch).
Where I have gone so far is to:
1. Factor out general, non-LSMB-specific tasks into PGObject::Util::DBAdmin. These tasks include backups, database creation, and the like. I like the toolkit so far but there are still some issues with error handling and detection I am working on.
2. Created a general framework for upgrading LedgerSMB databases without having deep internal knowledge of the databases.
3. Add some test cases though I suspect more will come today.
So I think I have, for the most part, the admin object model done. I am leaving a few things rather deliberately out of scope. For the first version I might not add user management yet (though I expect to shortly).
The next step for the first draft is to build some command line tools that can be used to manage databases. Then I will create the web app.
My current plan for URL layout is:
root/host/port/ -> get => list dbs
get => db version and statistics info
post a file => run sql file
post "reload" as an action ="" reload stored procs post "upgrade=[major_version]" => upgrade
root/host/port/dbname/backup -> get => take backup, put => restore backup
root/host/port/dbname/setup -> get => is set up?, put => set up for admin
The second version is likely to include user management functionality. Here is my planned URL layout for that:
root/host/port/dbname/users => get => list of users,
post => global password reset requirements
root/host/port/dbname/users/username get => info on user,
post -> save user/reset password
get => list roles
post => revoke grants and then grant roles
put => grant roles
delete => revoke grants
All resources will be available in appropriate formats (sql, appropriate backup formats, xml, json, html).
any feedback on the url layout?
Efficito: Hosted Accounting and ERP. Robust and Flexible. No vendor lock-in.