A API deve manusear sessões, usuários e grupos, múltiplos banco de dados, e suporte a módulos. * Suporte a templates * Abstração de usuários e grupos * Possivelmente uma busca unificada entre todos os módulos Suporte a módulos A API deve oferecer aos módulos: 1. Camada Javascript a. suporte unificado a línguas b. suporte unificado a conexões Ajax c. suporte unificado a apresentação i. Abas e janelas ii. Mensagens de erro e status d. Assistir carregamento e descarregamento do módulo. e. Teclas de atalho unificadas f. Comunicação entre os módulos i. Por exemplo disparar email centralizado no expressoMail, consultar usuários centralizados no !ContactCenter 2. Camada Php a. Preferências b. Abstração de usuários Como é definido o módulo Raíz (ex. /var/www/expresso/) * modulo_exemplo/ a. index.php b. templates/ i. default/ (obrigatório) ii. outro/ (opicional) c. inc/ i. class.appname_ui*.inc.php ii. class.appname_bo*.inc.php iii. class.appname_so*.inc.php iv. hook_*.inc.php d. js/ i. main.js e. setup/ i. phpgw_pt-br.lang ii. setup.inc.php