The Grok administration and development UI
grokui.admin: A basic grok admin UI
The replacement for the former grok.admin package.
The internal name of the admin UI is: Grok Application Interface Application or, for short GAIA.
GAIA is itself a Grok application and a subproject to the core Grok development. Its main goal is making developing of Zope 3 and Grok applications a faster and smarter job with more fun for everybody.
Login - what is my username/password?
Before you can use the admin UI, you first must log in.
The username and password of the manager principal (kind of super user) can be found in the file buildout.cfg in the root of your subversion checkout.
In case you do not know, what ‘subversion checkout’ means, look for a file site.zcml in your installation.
Users of grokproject, might find this file in <installdir>/parts/app/site.zcml.
Using the admin-UI
After login you can visit some of the main management topics, as described below:
On top of the admin-UI you can always find three links to the main management activities currently possible with GAIA:
- List of all instanciated applications
- You can add new instances of Grok applications
- You can rename instances of Grok applications
- You can delete your installed applications.
starting with version 0.5 there is no introspector/class browser included in grokui.admin anymore. Eventually this will be made availabel in another package by someone else.
Set security notifications. Those are by default disabled, because they mean home-calling functionality you may do not want. You can enable/disable those notifications or set a URL to retrieve information about security related problems.
Start/Restart the server. Caution! This does not work, if the server was started in ‘foreground mode’ (with ‘zopectl fg’).
Pack the ZODB. This removes old data from the database, freeing up disk space. In a production environment, you might want to pack the ZODB automatically from cron. This can be done using a command like the following:
curl -q -s -u admin:admin "http://localhost:8080/++grokui++/@@server?pack=1&days=1"
which will remove old data older than one day. If you leave out the days parameter, all old data will be removed.
Get basic information about the running Zope system.
Enter a message to be displayed on top. You can, for example, leave a message here for your co-admins. To delete the message, just enter the empty string in the appropriate input box.
Maintaining grok installations with the admin UI
There are some special info views available especially for the use of system administrators that want to automate Grok administration in some aspects. They provide minimal information about certain topics.
Currently the following infos are available this way:
The grok version working in background:
curl -q -s -u admin:admin "http://localhost:8080/++grokui++/@@admin/@@version"
The security notification (if any):
curl -q -s -u admin:admin "http://localhost:8080/++grokui++/@@admin/@@secnote"
Beside this you can pack the ZODB databases as described above.
Bugs, Caveats and Ways to Get Help
The Grok admin UI has been refactored during the Cologne Neanderthal Sprint II, in september 2009.
As a matter of fact, it is still under development and improvement. Please, report any misbehavior or bug.
For bugreports use:
For discussions subscribe to the grok-dev mailing list, hosted on:
The projects’ home is the subversion repository at:
Grok’s cave can be found at
- Update to follow API changes in grok.
- Update tests.
- Make sure to require the latest grok and grokcore.site.
- Nothing changed yet.
- Use the correct IApplication interface definition.
- In testing the security notifications, start a server instead of using file://localhost URLs. This saves a lot of urlopen troubles across platforms.
- Test setup cleanup.
- Fix tests in Windows.
- Fix a bug in the test setup where zope.session was not configurred.
- Fix https://bugs.launchpad.net/grok/+bug/638763 We don’t hide away Duplication/KeyErrors that are raised during application creation any more.
- The application creation view now uses the Grok util function create_application. Therefore, the ApplicationInitializedEvent, recently introduced in Grok, is now triggered while an application is created and persisted. This is an important event, allowing to hook handlers that need local utilities and catalog indexes that are not yet present at the ObjectCreatedEvent stage.
- Modified package to comply with Zope Foundation policy.
- Removed duplicated/unused code. Fix https://bugs.launchpad.net/grok/+bug/539940
- Reflect changes in Folder API: check also for KeyError, not only for DuplicationError when adding new apps.
- Added extra-templatedirs and moved templates into these in order to avoid (erraneous) templatedir-registry warnings.
- Added missing tests dependencies. Declarations and includes should now be complete.
- Moved the Index view to grokui.base.
- The design has been slightly changed to get rid of the lazy Grok and to match the http://grok.zope.org website design. The design belongs now to grokui.base.
- grokui.admin has been splitted into several packages. It now depends on grokui.base that provides basic components to create and plug UI views. grokui.admin has been altered to reflect the splitting changes and now provides a collection of components that will allow you to plug your own administration panels and elements.
- Dependencies have been drastically cut down. We are now using the ZTK. The only zope.app package remaining is for the tests.
- Reflect the changes in grokcore.view 1.12 where View and CodeView become a single View again.
- The whole introspector stuff was removed in order to reduce number of dependencies.
- Adding apps now emits IObjectCreated events.
- Backports of fixes from 0.3.3 version (see below).
Added a security notifier to inform users when security issues are published on http://grok.zope.org. The notifier must be explicitly enabled. You can also run your own site/directory to place security notifications.
Added info views to get important information easier with tools like curl. Supported infos:
- Grok version used
- Current security notification (if any).
- Adapting this package to use the new version of grokcore.view which splits View into CodeView.
- Upgraded the versions to the alpha 4 list to avoid a dependency problem with zope.container versions.
- Include the new grok.View permissions for testing.
- Fixed bug in object browser: objects that ‘booleanized’ evaluated to False (empty containers for instance) were not displayed.
- Added dependency for zope.app.preference. This is needed by zope.app.apidoc but not always fetched.
- Fixed missing dependencies in setup.py.
- Added capability to pack ZODBs (thanks to Jasper Spaans).
- Added capability to rename apps.
- Made server controls dependent from availability of IServerControl. Otherwise the buttons for restarting or stopping the server process are not rendered.
- Fixed wrong links in docgrok template.
- Fixed ftesting.zcml that did not work with Grok 0.13.
Initial implementation by factoring out grok.admin from grok.