[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Discussion on next-gen admin tool

Hi everyone;

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

root/host/port/dbname/ ->
                         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?
Best Wishes,
Chris Travers

Efficito:  Hosted Accounting and ERP.  Robust and Flexible.  No vendor lock-in.
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
Ledger-smb-devel mailing list