== Extension Point : , E.g. ''IAuthenticator'' == ||'''Interface'''||The interface name. E.g. ''IAuthenticator''||'''Since'''||Since when is the extension point interface available? E.g. [milestone:0.12 0.12]|| ||'''Module'''||The module from where the interface can be imported from. E.g. trac.web.api||'''Source'''||Provide a source link here. You might also include a line reference if you want. E.g. [source:trac/trunk/web/api.py]|| {{{ #!comment table header is a good idea, just try to make it as compact as possible, especially module and source of it will fit nicely }}} Provide a short introductory explanation on the interface and the module providing it. E.g. the ''IAuthenticator'' extension point is defined by trac.web.api. It is used by trac's main request dispatcher to authenticate users based on the current request and session thereof. == Purpose == Provide detailed information on the purpose of the interface here. E.g. ''IAuthenticator'' is used by the main request dispatcher to associate the current request's session with a user, or, in case that no such user exists, with the anonymous user. The most basic implementation would search for a cookie in the request. Other, more elaborated implementations for example would provide single sign on for example by evaluating an existing request header, and so on. == Usage == Provide detailed usage information of the extension point and implementations thereof. E.g. when is a method of the implementation being called and so on. == Examples == Provide one or more example implementations of the interface. == Available Implementations == Provide references to available implementations of the interface, for example by linking to sources in trac trunk or on trac-hacks. You might also include short discussions on how they have been implemented. == Additional Information and References == Provide here additional information on the extension point interface, for example open tickets regarding the interface or existing talk on the extension point, for example links to irc back logs and so on, including also best practices when implementing/using the interface. For example, for the IEnvironmentSetupParticipant there is currently talk about always committing changes to the database when upgrading using a migration path, so that on error during the migration, the existing data will not be corrupted.