I don't know if this has been discussed yet, but I think it would be a
good idea to create a system that helps with the final deployment of a
project. I don't know how enhancement proposals are handled, and the
main site appears to be down right now so I can't look it up ... which
means you get the probably-too-formal method we use at work. I will be
working on a patch to provide this just as soon as I know it at least
has a chance to be accepted. Here is my proposal, I would appreciate
any ideas or suggestions that you may have:

Idea:
Add a tg-admin command that starts a temporary site used to configure
and set up the permanent site, along with associated libraries to
assist in creating the configuration site.

Motivation:
The current system requires, at the least, hand editing of
configuration files. If any applications require initial database
configuration, that must be accomplished through the shell. Considering
the high level of automation for the installation process that is
provided by setuptools it does not make sense for configuration to
require manual configuration file edits and (possibly) python shell
usage.

This system will provide application developers with a clear path for
handling initial setup. It will reduce the knowledge requirements for
setting up a website to the same requirements for running and using it.
A setup environment is also a good place to conduct sanity checking of
the application's configuration before the user attempts to launch it.

Implementation:
The implementation would start with a new tg-admin command. Since it
has not yet been used I think "tg-admin setup" is an appropriate
choice. This command will request the following information from the
user before launching the server:

1) The port the configuration server should bind to
2) The base url where the application will reside
3) A user name and password that are used to log in to the
configuration system.

#1 is self explanatory.
#2 is used to launch the web browser pointed at the configuration
system, in the same way that tg-admin toolbox currently functions.
#3 is used to ensure that only the person setting up the application is
able to log in to the configuration site. This could obviously be
exchanged for another method of restricting access, but I feel that the
username and password combination would be the most secure.

When the configuration server launches it will look in
<sitedir>/<sitedir>/config for a root controller named config and mount
it. Since it is running in the application folder it has full access to
all of the resources used by the application, and should be able to
make any required changes.

Additional Features:
I would like to create a configuration file manager that processes the
configuration files and redisplays them as user editable web forms.
This system will provide application developers with the option of
supplying validators for the configuration pages, which will allow full
control over the values that are written to the config files. A method
of supplying per-item and per-file additional configuration
instructions will also be provided.

Conclusion:
Most web applications do not address the configuration issue beyond
manual editing of config files and database item entry. I think this
solution would provide application developers with an easy means of
addressing this issue in a user-friendly manner.

-Adam


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"TurboGears Trunk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/turbogears-trunk
-~----------~----~----~----~------~----~------~--~---

Reply via email to