manual referencia expresso

Download Manual Referencia Expresso

If you can't read please download the document

Upload: andre-gaio

Post on 27-Nov-2015

54 views

Category:

Documents


0 download

TRANSCRIPT

5. Falta figura, mas no est visualizando os grupos.....

EXPRESSO

Manual de Referncia

Sute de Comunicao Expresso - Manual de Referncia

Sumrio1 - Introduo41.1 - Caractersticas42 - Estrutura dos servios43 - Pacote Bsico43.1 Sistema Operacional53.2 - Servidor Web53.2.1 - Pacotes utilizados53.3 - Servidor de Banco de Dados53.3.1 - Agenda53.3.2 - ContactCenter73.3.3 - Pacotes Utilizados93.4 - Servio de Diretrio93.4.1 - Login no Expresso e LDAP103.4.2 - Pacotes utilizados:103.5 - Servios de Autenticao113.5.1 - Pacotes utilizados:113.6 - Servio de Correio113.6.1 - Cyrus IMAP113.6.2 - Os arquivos do Cyrus113.6.3 - Pacotes utilizados123.7 - Postfix123.7.1 Pacotes utilizados123.8 - Arquivamento Local123.8.1 - Arquivos133.9 - Expresso Offline133.10 Temas e Templates143.10.1 Templates143.10.2 Temas143.10.3 Templates e temas nos mdulos do Expresso154 - Servios Especiais164.1 - Servidor de Listas de Endereamento164.1.1 - Pacotes utilizados:164.2 - Utilizao de Certificados Digitais174.2.1 - Componentes174.2.2 - Estao de trabalho do usurio174.2.3 - Servidor da aplicao184.2.4 Diagrama194.2.5 - Funcionamento194.2.6 - Repositrio de certificados204.2.7 - Cifrando mensagens(Envio)204.2.8 - Decifrando mensagens(Recebimento)204.3 Cliente Voz sobre IP214.4 Sincronismo com dispositivos mveis 224.4.1 Requisitos224.4.2 Servidor Funambol 224.4.3 Dispositivos Mveis 224.4.4 Topologia 234.5 Comunicao Instantnea254.6 Workflow265 Setup de aplicaes275.1 . Overview 275.2 . Arquivos do Setup da aplicao285.2.1 . setup.inc.php (Requirido) 285.2.1.1 Informaes Bsicas285.2.1.2 Informaes de tabelas305.2.1.3 Hooks305.2.1.4 Dependncias305.2.2 tables_baseline.inc.php (Recomendado) 315.2.3 tables_current.inc.php (Recomendado) 325.2.4 tables_update.inc.php (Recomendado) 335.2.5 default_records.inc.php (Opcional) 355.2.6 test_data.inc.php (Opcional) 355.2.7 language files (Requirido) 355.3 Developer Tools365.3.1 sqltoarray.php 365.3.2 schematoy.php 365.4 O processo de install/upgrade 375.4.1 Setup internal upgrade functions375.4.2 Novas instalaes375.4.2.1 Deteco375.4.2.2 Selection385.4.2.3 Installation385.4.3 4.3 Upgrades 385.4.3.1 Deteco385.4.3.2 Selection385.4.3.3 Upgrade395.4.4 4.4 Uninstallation/Removal 395.4.4.1 Selection395.4.4.2 Uninstallation395.4.5 Miscelnias395.4.5.1 Auto fields395.4.5.2 Default 0401. Referncias41Ficha Tcnica42

- Introduo

O Expresso Livre uma soluo completa de comunicao que rene Email, Agenda, Catlogo de Endereos e Mensagens Instantneas em um nico ambiente. Por ser uma verso customizada do E-GroupWare, seu desenvolvimento tambm totalmente baseado em software livre.Este manual descreve as principais funcionalidades e caractersticas tecnolgicas envolvidas no Expresso. No inteno fornecer aqui elementos de configurao ou administrao de ambiente pois estes possuem documentao prpria.

- Caractersticas

Alta Escalabilidade

Baixo custo

Utilizao de protocolos padres

Integrao com outros sistemas Web

Independncia de fornecedor

Independncia de plataforma cliente

Independncia de plataforma servidor

Mobilidade dos usurios

O Expresso uma aplicao desenvolvida em PHP, com algumas funcionalidades em Java ou mesmo Python e que rene vrios componentes que esto integrados em si. Abaixo tem-se um resumo de cada um deles:

Sistema Operacional Hospedeiro

Servidor Web Apache e pacotes necessrios

Servidor de Banco de Dados PostgreSql

Servidor de Diretrio Ldap

Servidor Cyrus IMAP

Servidor Postfix

SASL

Jabber

Servidor de Listas Mailman

Google Gears

Java(TM) Plug-in

Funambol-7.0.6

Funambol-psync-1.0.0.s4j

Jre-1.5.0 ou maior

- Estrutura dos servios

- Pacote Bsico

Esta seo descreve os componentes que compe a soluo Expresso, necessrios para o seu funcionamento, considerando as funcionalidades bsicas.

Sistema Operacional

O sistema operacional utilizado para a instalao do Expresso o GNU Linux Debian Etch.

- Servidor Web

O Apache um servidor de aplicaes WEB para Internet e adotado como padro pela equipe Expresso. Permite que toda a aplicao Expresso Livre seja acessada via navegadores de internet, como Mozilla Firefox ou Microsoft Internet Explorer. Ele livre e de cdigo aberto, alm de ser reconhecido internacionalmente como uma ferramenta confivel. Todos os servidores da aplicao Expresso rodam Apache e todos os servios do Expresso Livre so disponibilizados com o servidor web Apache.

- Pacotes utilizados

- Apache2- Openssl- Php5- Php5-imap- Php5-ldap- Php5-pgsql

- Servidor de Banco de Dados

O PostgreSQL uma excelente alternativa de bancos de dados em software livre e um dos bancos mais confiveis da atualidade. Aguenta elevada carga de dados e por ter custo zero, foi escolhido como o padro para o Expresso.

O banco de dados do Expresso, guarda informaes como preferncias, eventos do calendrio, catlogo pessoal e informaes do prprio sistema do expresso, alm de dados necessrios execuo da aplicao, flags, variveis dos servios de correio, entre outros.

- Agenda

O mdulo da Agenda de Eventos utiliza o banco de dados para armazenar os agendamentos de usurios e seus participantes. No momento da criao de um evento (agendamento), um registro gravado na tabela phpgw_cal. No caso de haver participantes, um registro com o uid de cada um deles associado ao mesmo cal_id do evento, ser gravado na tabela phpgw_cal_user.

Os agendamentos tambm so classificados quanto ao tipo e, conforme o caso, um valor especfico armazenado no banco para identific-lo. Para os eventos do tipo normal e do tipo restrito, o campo cal_type da tabela phpgw_cal recebe o valor E; para agendamentos do tipo privado, o valor P e quando um agendamento que se repete, o valor gravado M.

As informaes relativas aos agendamentos recursivos, so gravadas na tabela phpgw_cal_repeats. De acordo com o tipo de recursividade, um valor de identificao diferente gravado no campo recur_type da referida tabela. Os valores so:

1 para repetio Diria;2 para repetio Semanal;3 para repetio Mensal (por data);5 para repetio Anual.

Ainda na tabela phpgw_cal_repeats, o campo recur_data registra os dias de repetio de um agendamento. A maneira que essa informao gravada toma como base o somatrio de valores relativos a cada dia da semana selecionado importante lembrar que essa informao utilizada apenas quando a repetio do tipo Semanal. Os valores so:

1 domingo2 segunda-feira4 tera-feira8 quarta-feira16 quinta-feira32 sexta-feira64 sbado

No caso de um agendamento com alarme configurado, a tabela phpgw_async recebe os dados relativos a esse alarme.

O Expresso Admin tambm usa o banco de dados para guardar dados. Na tabela phpgw_acl so gravadas informaes referentes a quais mdulos do Expresso os usurios tm permisso de acesso.

Tabela phpgw_cal

CampoTipoDescrio

cal_idint4(not null)[pk]Numero de identificao do evento.
O valor padro dado pela seqencia nextval(('seq_phpgw_cal'::text)::regclass)

uidvarchar(255)(not null)Guarda o dominio onde o usuario est inserido ( ex. -@ , joao@ )

ownerint8(not null)Numero de identificao do dono do evento

categoryvarchar(30)Define se o evento est em alguma categoria.
1 : Para evento com categoria
' ': Para evento sem categoria

groupsvarchar(255)NULL (todos os eventos que foram criados ficaram com esse valor)

datetimeint8Guarda, em microtime, a data e hora em que o evento ir acontecer.

mdatetimeint8Guarda, em microtime, a data e hora em que o evento foi criado.

edatetimeint8Guarda, em microtime, a data e hora em que o evento ir terminar.

priorityint8(not null)Define a prioridade do evento.
0 : Para evento sem prioridade
1 : Para evento com prioridade baixa
2 : Para evento com prioridade mdia
3 : Para evento com prioridade alta

cal_typevarchar(10)Define se o evento ser repetido.
E : Para evento unico
M : Para evento com repetio

is_publicint8(not null)Define se o evento ser publico.
0 : Para evento particular
1 : Para evento pblico

titlevarchar(80)(not null)Guarda o titulo do evento.

descriptiontextGuarda a descrio do evento.

locationvarchar(255)Guarda o local onde o evento ir ocorrer.

referenceint8(not null)Quando um evento de um evento recursivo editado, esse campo recebe o cal_id referente ao evento que foi editado.

ex_participantstextGuarda os e-mails dos participantes que no esto em nenhum grupo.
Os participantes esto separados por virgulas.

Estas tabelas tm um relacionamento de 1/1, onde o campo cal_type deve estar com o valor m para que haja uma entrada na tabela abaixo.

Tabela phpgw_cal_repeats

CampoTipoDescrio

cal_idint8(not null)Numero de identificao do evento.

recur_typevarchar(30)(not null)Define o tipo de repetio do evento.
1 : Para evento dirio
2 : Para evento semanal
4 : Para evento mensal por dia
3 : Para evento mensal por data
5 : Para evento anual

recur_use_endint80 (Todos os eventos ficaram com esse valor)

recur_enddateint8Guarda, em microtime, a data em que a repetio do evento ir terminar.

recur_intervalint8Guarda o intervalo em que o evento ira ocorrer.
0 : Para um evento unico
1 : Para um evento diario ou semanal ou mensal ( passo de 1 )
2 : Para eventos a cada 2 dias, 2 semanas 2 meses
e assim por diante.

recur_dataint8Guarda quais dias da semana o evento ir acontecer, a somatria desses valores indicar os dias que foram marcados
1 : Domingo
2 : Segunda
4 : Tera
8 : Quarta
16 : Quinta
32 : Sexta
64 : Sabado
(Ex.: 42 = Segunda(2), Quarta(8) e Sexta(32))

recur_exceptionvarchar(255)Guarda, em microtime, os dias em que no haver o evento.
Esses dias so separados por virgula.

O evento somente ser exibido se houver uma entrada nesta tabela indicando a ID do evento e a ID do dono.

Tabela phpgw_cal_user

CampoTipoDescrio

cal_idint8(not null)Numero de identificao do evento.

cal_loginint8(not null)Numero de identificao do dono do evento.

cal_statuschar(1)Define se o usurio aceitou ou no participar do evento.
A : Se aceitou participar
U : Se no aceitou participar

cal_typevarchar(1)(not null)Guarda algum tipo de informao que ainda no foi possvel descobrir

- ContactCenter

O mdulo Catlogo de Endereos guarda os contatos pessoais dos usurios no banco de dados.Os dados dos contatos esto dividos em 25 tabelas, mas em 2 tabelas se encontram todos os dados necessrios para o contato. Os dados que podero ser utilizados no padro vCard so os seguintes:

Tabela phpgw_cc_contact

Nesta tabela ficam armazenados o nome, sobrenome e apelido dos contatos. Atravs do campo id_owner, possvel identificar a qual usurio o contato pertence.

CampoTipoDescrio

id_contactint8(NOT NULL)[pk]Numero de identificao do contato.

id_ownerint8(NOT NULL)Numero de identificao do dono do contato.

id_statusint4Numero de identificao para contato completo ou simples.

photobyteaValor binrio da imagem de exibio do contato.

aliasvarchar(30)Guarda o nome de exibio do contato.

id_prefixint4NULL ( Nenhum dos exemplos criados chegaram a ocupar esse espao)

given_namesvarchar(100)Guarda o primeiro nome do contato.

family_namesvarchar(100)Guarda o sobre-nome do contato.

names_orderedvarchar(100)Guarda o nome completo do contato.

id_suffixint4NULL ( Nenhum dos exemplos criados chegaram a ocupar esse espao)

birthdatedateGuarda a data de aniversrio do contato.

sexchar(1)Caracter que indentifica o sexo do contato.(nenhum dos exemplos ocupou esse campo, nem havia onde registrar-lo)

pgp_keytextChave publica pgp do contato para criptografia das mensagens.

notestextNotas sobre o contato.

is_globalboolFlag que define se o contato publico ou privado.

Tabela phpgw_cc_connections

Registra os endereos eletrnicos e nmeros de telefone dos contatos.

CampoTipoDescrio

id_connectionint8(NOT NULL)[pk]Numero de identificao da ligao com o contato

connection_namevarchar(50)Guarda o nome do endereo de e-mail ou telefone do contato.
Principal : Para o e-mail principal do contato
Alternativo : para o e-mail alternativo do contato
Residencial : Para o telefone Residencial do contato
Celular : Para o telefone Celular do contato
Comercial : Para o telefone Comercial do contato
Fax : Para o telefone Fax do contato
Pager : Para o telefone Pager do contato

connection_valuevarchar(50)Guarda o valor do e-mail ou telefone do contato.

connection_is_defaultboolDefine se o endereo ou e-mail o padro do contato.

Tabela phpgw_cc_addresses

Registra os endereos dos contatos; o campo id_address remete tabela phpgw_cc_typeof_ct_addrs, que identifica o endereo como sendo Residencial e Comercial.

CampoTipoDescrio

id_addressint8(NOT NULL)[pk]Numero de identificao do endereo

id_cityint8Numero de identificao da cidade

id_stateint8Numero de identificao do estado

id_countrybpchar(2)(NOT NULL)Numero de identificao do pais

address1varchar(60)Endereo principal

address2varchar(60)Endereo secundrio

complementvarchar(30)Complemento

address_othervarchar(60)Outro endereo

postal_codevarchar(15)CEP

po_boxvarchar(30)Caixa Postal

address_is_defaultbooleanEndereo padro?

Tabela phpgw_cc_contact_ connections

As tabelas phpgw_cc_contact e phpgw_cc_connections esto ligadas num relacionamento de 1/N atravs dessa tabela:

CampoTipoDescrio

id_contactint8[pk]Guarda a identificao do contato

id_connectionint8[pk]Guarda a identificao da conexo do contato

id_typeof_contact_connectionint4Guarda o tipo de conexao com o contato:
1: Para e-mail
2: Para Telefone

Tabela phpgw_cc_contact_addrs

As tabelas phpgw_cc_contact e phpgw_cc_addresses esto ligadas num relacionamento de 1/N atravs dessa tabela:CampoTipoDescrio

id_contactint8[pk]Numero de identificao do contato

id_addressint8[pk]Numero de identificao do endereo

id_typeof_contact_addressint4Numero de identificao do tipo de endereo:
1 : Para endereo comercial
2 : Para endereo residencial

As tabelas phpgw_cc_state e phpgw_cc_city contm a lista com os estados e cidades brasileiras, respectivamente.

- Pacotes Utilizados

- Postgresql-8.1- Postgresql-common- Postgresql-client-8.1- Postgresql-client-common

- Servio de Diretrio

O LDAP ou Lightweight Directory Access Protocol uma base de dados no SQL especificamente projetada para busca e navegao, alm de suporte s funes de consulta e atualizao dos dados.

O LDAP uma definio de protocolo para acesso a bancos de dados especializados chamados diretrios. similar ao SQL no sentido que uma linguagem para interagir com bancos de dados sem especificar um banco de dados particular. De fato, o banco de dados de suporte ao LDAP quase sempre um sistema RDBMS geral, como o LDBM ou o Oracle.

Nas diversas tecnologias que empresas de mdio e grande porte utilizam hoje em dia, uma rea para autenticao exigida por praticamente todos os sistemas, o que pode muitas vezes ocasionar uma variada quantidade de cadastro de utilizadores replicados entre os sistemas. Como exemplo daquele utilizador que tem muitos "logins" e "senhas" para acesso aos sistemas da empresa e toda semana precisa lembrar ou alterar alguma informao de seu cadastro. Ex: login e senha para acesso a mquina, a rede, ao e-mail, ao sistema de gesto, sistema de documentos, etc. Um servidor de diretrios como o Open LDAP ou MS Active Directory recebe esta autenticao dos muitos sistemas; o protocolo LDAP serve justamente para outras aplicaes quaisquer da empresa se conectarem e consultarem um servidor de diretrios.

Diretrios tendem a conter informaes descritivas baseadas em atributos e suportar sofisticados filtros de busca, porm, geralmente, no suportam transaes mais complexas ou esquemas de roll-back encontrados em sistemas de gerenciamento de dados projetados para tratar de grandes volumes de atualizaes.

O Expresso utiliza o OpenLDAP para montar a rvore de organizaes e usurios e cadastrar dados bsicos como nome, sobrenome e senha destes. A partir da senha, gerado um hash que fica gravado no diretrio. As senhas so armazenadas usando o tipo de encriptao MD5, independentemente do uso de certificado digital para efetuar login.

- Login no Expresso e LDAP

No processo de login sem certificado digital, o usurio informa, alm do , a . O Expresso faz uma consulta base Ldap procura daquele usurio e, a partir da senha informada, gera um hash e o compara com o hash que est armazenado l. Em caso positivo, o acesso sute liberado. Em caso negativo, o Expresso apresentar mensagem de erro solicitando novamente e .

Para o login com certificado digital, o processo um pouco diferente. O usurio precisa informar ao Expresso que deseja efetuar login usando um certificado digital; para isso deve usar o link Utilizar o meu Certificado para logar na tela inicial. Neste caso o usurio no informa a senha, apenas o . A consulta base Ldap feita, s que, desta vez, a procura por um campo que contm a senha, ou hash desta, criptografada com a chave pblica do usurio. Este o atributo cryptpassword. O Expresso, ento, descriptografa o contedo desse campo utilizando a chave privada contida no token do usurio, e a partir da, o processo se d de forma semelhante ao anterior.

Para informaes sobre o uso de certificado digital no Expresso, ver o item 3.2 deste manual.

- Pacotes utilizados:

- Slapd- Ldap-utils

- Servios de Autenticao

O servio SASL, sigla que vem de "Simple Authentication and Security Layer" ou "Camada Simples de Autenticao e Segurana", define o mtodo de autenticao das contas dos usurios e o protocolo de segurana de acesso s caixas de mensagens. O SASL j est integrado ao servidor Cyrus IMAP e ao OpenLDAP.

- Pacotes utilizados:

- Libsasl2- Libsasl2-modules- Sasl2-bin

- Servio de Correio

- Cyrus IMAP

O Imap um protocolo standard para armazenamento e recuperao de emails na Internet (Internet Message Access Protocol).

A principal funo do servidor IMAP prover acesso remoto a clientes de email, sejam eles web como no caso do Expresso ou mesmo clientes desktop(RFC 3501).

O servidor Cyrus mapeia as caixas de mensagens dos usurios e aceita conexes IMAP, em que as mensagens recebidas apenas ficam no servidor para consulta e/ou alterao dos clientes.

neste servio que so definidas as quotas das caixas de e-mail e onde a hierarquia de pastas e subpastas criada. Toda essa estrutura de pastas fica armazenada no diretrio /var/spool/cyrus/mail/.

O Cyrus oferece integrao com o SASL para autenticao de usurios, suporte a aplicativos como Clamav e Postfix e suporte nativo para filtros de e-mail (SIEVE).

- Os arquivos do Cyrus

Acessando a pasta do usurio, o administrador pode ver, remover, adicionar, alterar os e-mails das caixas postais. Por exemplo, na pasta "/var/spool/cyrus/mail/e/user/expresso-admin" encontra-se as caixas do usurio expresso-admin. Ao listar o contedo da mesma, tem-se:

10740.10751.cyrus.cachecyrus.indexEnviados10749.95431.cyrus.headerDraftsLixeira

Os arquivos regulares 10740., 10749., 10751. e 95431. so mensagens em formato texto. Lixeira, Enviados e Drafts so diretrios que representam as pastas da caixa postal.

Os arquivos cyrus.index, cyrus.cache e cyrus.header so arquivos de controle do cyrus para otimizar buscas em contedos e cabealhos dos e-mails. Quando as caixas apresentarem problema, como por exemplo lentido, estas podem ser refeitas. A forma de refaz-las usando a ferramenta /usr/sbin/cyrreconstruct.

Para administrar caixas no modo de comando (como por exemplo remoo e criao) o administrador deve usar a ferramenta cyradm.

A criao e administrao de usurios permite a manipulao das caixas postais, via interface grfica do Expresso.

- Pacotes utilizados

- Cyrus-admin- Cyrus-clients- Cyrus-common- Cyrus-imapd

- Postfix

O Postfix o servio de correio que executa o protocolo SMTP, responsvel pelo envio de mensagens. Implementa as filas de mensagens e deixa registrados em suas logs os envios de mensagens, para consulta do administrador. Seus pacotes j possuem integrao com os outros componentes do Expresso, como LDAP e Cyrus, e pode ser usado com qualquer protocolo de recebimento de mensagens.

Pacotes utilizados

- Postfix- Postfix-ldap

O ExpressoMail faz uso destes dois servios para recebimento e entrega de mensagens. O funcionamento de ambos o padro, porm existe a possibilidade do uso de certificados digitais para assinatura e criptografia das mensagens; para informaes sobre o uso de certificado digital no Expresso, ver o item 3.2 deste manual.

- Arquivamento Local

A imensa quantidade de informaes importantes que circulam por e-mail, junto com as facilidades que as ferramentas de correio eletrnico proporcionam, exigem que hoje tenhamos uma capacidade de armazenamento bastante ampla.

Pensando em atender esta demanda para o armazenamento de mensagens de e-mail, a equipe de desenvolvimento do Expresso implementou o arquivamento local atravs do Expresso WEB, permitindo que os e mails armazenados no servidor central sejam copiados ou movidos para o banco de dados da estao de trabalho do usurio, funcionalidade denominada Arquivamento Local.

Este arquivamento utiliza o Google Gears(http://gears.google.com), um complemento para os browsers Mozilla Firefox e Internet Explorer (compatvel com os sistemas operacionais Windows e Linux). Atravs deste complemento, possvel que as mensagens recebidas no Expresso sejam armazenadas no disco rgido da estao do usurio.

A instalao do Google Gears feita automaticamente pelo Expresso, caso o usurio deseje usar a funcionalidade. O Gears possui verses para:

- Internet Explorer 6+ - recomendado IE7+- Firefox 1.5+ - recomendado FF3+

At o momento da confeco deste manual, a verso utilizada do Gears a 0.5.32.0 para Linux e 0.5.36.0 para Windows.

- Arquivos

No diretrio base do Google Gears:

localserver.db Este um banco de dados SQLite que guarda apontamento para todos os arquidos guardados no LocalServer de todos os domnios. Este arquivo usado internamente pelo Gears e no pode ser acessado por programao da API do Gears.

permissions.db um banco de dados SQLite que guarda todos os domnios(urls) que tem permisso para utilizao do Gears.

No diretrio domnio do Google Gears:

/https_443/#database Este um banco de dados SQLite criado pelo Expresso para o domnio .

/https_443/#localserver Este um diretrio(pasta) que contem os arquivos cachados por cada tipo de LocalServer, um ResourceStore ou um ManagedResourceStore, criado pelo dominio .

Ao fazer uso do arquivamento local, o Gears cria um banco de dados SQLite que fica localizado dentro do diretrio com o perfil do browser do usurio. Como o Gears usa o conceito de um banco por URL, h que se considerar que o acesso a sites via HTTP ou via HTTPS, geram caminhos e bancos locais diferentes, mesmo que a URL do Expresso seja a mesma.

No Windows XP, usando-se o browser Internet Explorer, o caminho para o banco de dados do Gears :

c://Documents and Settings//Configuraes Locais/Dados de Aplicativos/Google/Google Gears///

Em outras verses do Windows, o caminho do banco de dados local pode ser encontrado de maneira anloga ao do XP, sempre partindo da pasta de perfil do usurio.

Caso o browser usado no Windows seja o Firefox, o caminho muda e fica da seguinte maneira:

c://Documents and Settings//Configuraes Locais/Dados de Aplicativos/Mozilla/Firefox/Prefis//Google Gears for Firefox///

No Linux o caminho tambm usa o mesmo princpio, porm escrito de outra maneira, considerando-se que aqui o browaer o Firefox:

/home//.mozilla/firefox//Google Gears for Firefox///

O nome do arquivo de banco de dados, em todos os casos, database-test#database.

- Expresso Offline

O Expresso Mail Offline o mdulo Expresso Mail, configurado apenas para trabalhar com acesso as Pastas Locais, permitindo assim que o usurio possa acessar os seus e-mail ainda que no haja uma conexo com a rede ou com a internet. Segue abaixo um passo a passo de como utiliz-lo.

O Google Gears requisito obrigatrio para a utilizao do Expresso Mail Offline e o usurio deve ter optado nas suas preferncias do mdulo de email a utilizar arquivamento local, bem como ter realizado a instalao do Google Gears quando da solicitao de sua instalao pelo Expresso.

Temas e TemplatesO Expresso possibilita a customizao de sua aparncia mediante a utilizao de templates e temas, a saber:Template organiza e d forma interface normalmente composto por um cdigo html que determina a disposio dos elementos da interface na tela do browser;

Tema compe a aparncia final, definindo as cores e as imagens que daro s pginas do Expresso a identidade visual desejada.

A seleo do template e do tema a serem utilizados feita em Minhas Preferncias / Preferncias Obrigatrias / Seleo de Interface/Modelo e Minhas Preferncias / Preferncias Obrigatrias / Seleo de Tema (cores/fontes). A possibilidade do usurio final selecionar o template ou tema de sua preferncia configurvel, ou seja, o administrador pode ou no disponibilizar ao usurio final a seleo dos templates e temas.TemplatesOs templates disponveis esto localizados na pasta /phpgwapi/templates. O Expresso identifica os templates nesta pasta e os inclui para seleo na lista de templates. Cada template possui em sua estrutura arquivos de folha de estilo, cdigos php e imagens.Os arquivos de folha de estilo (.css) esto localizados na pasta css. Esta pasta pode conter um arquivo css para cada tema disponvel para o template, alm do arquivo base.css, que o arquivo padro de estilo do template. Este arquivo padro deve conter as definies que so compartilhadas por todos os temas do template, sendo a base do seu layout. Porm, no obrigatria a sua presena, sendo que, se ele no existir, o template seguir as definies constantes do arquivo base.css presente no template default.As imagens padro do template esto localizadas na pasta images. As demais pasta contm cdigo. Na raiz do template tambm esto mais alguns arquivos de cdigo e arquivos template (tpl).Por ltimo, a pasta themes contm folhas de estilo e imagens especficas dos temas, permitindo customizar a aparncia de acordo com o cliente e/ou preferncia pessoal.TemasOs temas disponveis para um determinado template se localizam na pasta /phpgwapi/templates//themes. Uma vez selecionado o template, o Expresso identifica os temas nesta pasta e os inclui para seleo na lista de temas.Cada tema possui em sua estrutura arquivos de folha de estilo e imagens. Os arquivos de folha de estilo (css) esto localizados na pasta css, e as imagens na pasta images.Templates e temas nos mdulos do ExpressoEsta estrutura de templates e temas tambm est presente em cada mdulo do Expresso, por exemplo, no expressoMail. Assim, detalhes prprios de um mdulo podem ser exibidos de acordo com o template e tema escolhido.No caso de no existir, em um determinado mdulo, o template selecionado, o Expresso utilizar o template default. Situao parecida se aplica no caso em que, em um determinado mdulo, no exista o tema selecionado, quando ento ser utilizado o padro do template.A incluso dos arquivos css nas pginas segue a seguinte ordem:arquivo /phpgwapi/templates//css/base.css ou, caso este no exista, /phpgwapi/templates/default/css/base.css;

arquivo /phpgwapi/templates//css/.css;

arquivo //templates//css/.css;

arquivo //templat

- Servios Especiais

Nesta seo sero descritos os servios adicionais especiais comportados pelo Expresso, como novas funcionalidades ou modificao de outras j existentes. Considera-se servio adicional aqueles servios no disponveis no pacote bsico e que dependem da disponibilidade adicional de infra estrutura a ser disponibilizada para o Expresso, isto , a simples instalao do Expresso no comportar os servios mencionados a seguir, havendo necessidade recursos de software ou hardware adicionais.

- Servidor de Listas de Endereamento

Mdulo adicionado para implementar o uso do servio de listas de e-mail com todas as suas funcionalidades, dentre as quais:

- Histrico de mensagens- Limitao do tamanho de arquivos anexados- Moderao de listas

Este servio deve ser instalado, preferencialmente, em um servidor exclusivo.

4.1.1 Funcionamento

A base LDAP contm usurios e listas de distribuio. Toda a administrao feita via interface do Expresso, e nela possvel inserir, excluir e editar listas, incluir e excluir usurios, permite tambm estabelecer permisses de envio para lista.

Para que um usurio possa realizar essas aes, ele precisa ser o Gerente da lista. Atravs da opo Adm o administrador do Expresso pode delegar a gerncia de listas para determinados usurios. A partir desta condio, o usurio, agora gerente, poder realizar todos os procedimentos administrativos sobre a lista.

A criao e excluso de uma ou mais listas , a princpio, privilgio do administrador do Expresso; todavia, tambm possvel delegar estas funes para outros usurios. Para isto, a condio que o usurio escolhido seja pertencente ao grupo listadmin do LDAP.

A sincronizao LDAP e Mailman feita no servidor de listas, que cria listas, inclui e exclui usurios, automatizando a manuteno e ainda mudando os mesmos de lista quando for necessrio.

O envio e recebimento de mensagens feito via relay de entrega ou diretamente ao servidor responsvel pela conta do usurio ou lista. A base LDAP contm o endereo de email da lista, bem como seus membros; o Mailman de posse destes dados, faz a entrega de forma controlada e escalonada das mensagens. possvel estabelecer polticas diferenciadas de envio e recebimento, estabelecendo quais os usurios podem ou no submeter mensagens a lista. Todas as listas esto disponveis para pesquisa no Catlogo de Endereos e no Expresso Mail.

- Pacotes utilizados:

- Mailman- Postfix- Php5-common- Php5-dev- Php5-curl- Php5-cli- Php5-ldap

- Utilizao de Certificados Digitais

A certificao digital uma ferramenta de segurana que permite ao cidado brasileiro realizar transaes no meio eletrnico, que necessitem de segurana, como assinar emails, obter informaes sensveis do governo e do setor privado, entre outros exemplos.

O Brasil conta com um Sistema Nacional de Certificao Digital que mantido pelo Instituto Nacional de Tecnologia da Informao.

Tecnicamente, o certificado um documento eletrnico que por meio de procedimentos lgicos e matemticos asseguraram a integridade das informaes e a autoria das transaes. Esse documento eletrnico gerado e assinado por uma terceira parte confivel, ou seja, uma Autoridade Certificadora que, seguindo regras emitidas pelo Comit Gestor da ICP-Brasil , associa uma entidade (pessoa, processo, servidor) a um par de chaves criptogrficas.

O expresso possui suporte utilizao de certificados digitais atualmente utilizados e homologados para login no seu sistema, assinatura e criptografia de emails produzidos ou recebidos pela ferramenta.

Foram testados e homologados certificados tipo A1 e A3, produzidos pelo Serpro, Serasa , Frb, nos dispositivos tokens e smart-cards.

O Expresso d suporte a login, assinatura e criptografia de emails por meio de certificados digitais padres ICP-Brasil, conforme descrito acima.

O Expresso verifica a validade dos certificados usados nestas operaes e a integridade das mensagens assinadas ou cifradas recebidas.

Quando do recebimento de uma mensagem assinada digitalmente, o certificado que assinou a mensagem armazenado automaticamente em um repositrio de certificados, e fica disponvel para cifrar mensagens para os seus proprietrios.

O objetivo principal da utilizao de certificados no Expresso esta relacionado a segurana da informao, considerando as quatro premissas:

Autenticao: Com quem estamos comunicando?

Sigilo/Confidencialidade: Algum pode ler?

Integridade : O dado foi alterado?

Irretratabilidade/No repdio : E se ele disser que no foi ele?

- Componentes

- Estao de trabalho do usurio

O suporte a certificados composto por um ambiente de software na estao de trabalho do usurio para possibilitar o acesso aos dispositivos criptogrficos, sejam eles na forma de arquivos(A1), tokens ou smart-cards(A3) conectados as portas USB do equipamento do usurio.

Os softwares necessrios so basicamente: o Certificado, o Browser, uma mquina virtual Java, o driver do dispositivo utilizado pelo usurio(do fabricante) e previamente configurado na estao e a applet java do Expresso para conversao com o dispositivo criptogrfico.

Esquema da estao do usurio.

Funcionalmente a Applet Java desenvolvida para o expresso ir se comunicar com o driver do dispositivo criptogrfico instalado na estao e a aplicao expresso.

- Servidor da aplicao

H necessidade de um conjunto de softwares no ambiente do servidor da aplicao, em conjunto com os softwares da estao de trabalho, para prover as funcionalidades relativas a utilizao de certificados digitais.Como por exemplo de suporte a funcionalidade, podemos citar:Configuraes especficas no diretrio ldap,Localizao padro dos drivers dos dispositivos dos usurios nas estaes,Utilizao de comunicao segura https,Lista de certificados revogados,Cadeia de certificados e autoridades certificadoras,Repositrio de certificados.

DiagramaESTAO DE TRABALHO

SERVIDOR DE APLICAOHTTPS

APACHE(/var/www/expresso)

EXPRESSO

ARQUIVOS De VALIDAO

LCR- Certificados Revogados:/security/crls

AC - Cadeia Autoridades Certificadoras:/security/cas/todos.cer

CONFUGURAO

https://expresso.gov.br/setupheader_inc.php

POSTGRES

Repositrio Chaves Pblicas: Phpgw_certificados

Certificado do Usurio: UserCertificate

Password Criptografada:Criptpassword

LDAP

- Funcionamento

O processo consiste na cifragem e decifragem. Para a cifragem basicamente no h complexidade no lado da estao pois ela apenas submete os dados para o servidor, este tratar de todos o processo de verificao e cifragem retornando para a estao o sucesso ou no da operao.

J na leitura da mensagem existe a figura da applet que tem o papel de comunicar-se com o servidor, acessar(estao) o certificado do usurio, requerer o PIN e efetuar a decifrao da mensagem.

- Repositrio de certificados

Sempre que um usurio receber um email assinado ou criptografado, a chave pblica do certificado do remetente guardada no banco de dados em uma tabela denominada Phpgw_certificados, para que seja utilizada quando algum usurio necessitar criptografar um email destinado a este usurio e portanto fazer uso da chave pblica deste usurio.Somente podero ser criptografadas mensagens para destinatrios cuja chave se encontre armazenada no banco de dados.A tabela repositrio, phpgw_certificados, contem os seguintes dados:

- Cifrando mensagens(Envio)

No expressoMail, o usurio compe a mensagem, marca o checkbox para cifragem e submete ao servidor atravs do boto enviar;

Ao chegar no servidor, a mensagem tratada da seguinte forma:So recuperados do Banco de Dados todos os certificados de cada destinatrio inclusive do remetente;

So verificados todos certificados e caso algum apresente alguma inconformidade a operao abortada;

gerada uma chave comum atravs das chaves pblicas de todos os certificados recuperados. Essa chave comum permite a decifrao da mensagem atravs da chave privada de qualquer desses destinatrios da mensagem;

A mensagem cifrada usando a chave comum e depois enviada para o servidor de e-mail;

A estao/usurio informada do envio da mensagem.

- Decifrando mensagens(Recebimento)

No expressoMail, o usurio clica na mensagem cifrada( ) e a requisio vai at o servidor;

O servidor identifica que se trata de uma mensagem cifrada e envia de volta para a estao(applet) o corpo da mensagem(cifrada);

A applet requisita o certificado digital do usurio e requere o PIN;

Validado o PIN, a chave privada do certificado do usurio usada para a decifrao da mensagem;

A mensagem decifrada enviada para o servidor e este submete ao IMAP para sua formatao;

A mensagem formatada retorna a estao e exibida.

OBS: Esse processo vale para a leitura das mensagens cifradas enviadas(Caixa de Enviados) pelo usurio.

Cliente Voz sobre IP

Sincronismo com dispositivos mveis

Com a popularizao de dispositivos mveis tais como celulares, smartphones e PDAs (Personal Digital Assistant), custos mais baixos tanto dos dispositivos como da infra-estrutura de acesso a dados, bem como a possibilidade de trafegar dados com segurana so fatores que contribuem para aumentar a facilidade e velocidade de acesso as informaes. Isso do ponto de vista empresarial quer dizer um aumento de produtividade, e o SERPRO de forma a manter-se alinhado com essa tendncia vai fornecer o acesso ao Expresso atravs de dispositivos mveis. A seguir ser descrita a topologia bsica, os padres e nomenclaturas, o modelo de endereamento e as questes relacionadas segurana, visando orientar o uso do expresso em dispositivos mveis, permitindo o sincronismo da caixa de email, contatos e agenda em qualquer lugar onde o acesso a internet estiver disponvel para o dispositivo mvel. A ferramenta responsvel pelo sincronismo o Funambol, que tem a vantagem de ter o cdigo aberto, permitindo alteraes e melhorias de acordo com as necessidades do Expresso. Por usar rede sem fio ou pacotes de dados da telefonia celular, as informaes esto vulnerveis a sofrer algum tipo de monitoramento, podendo at mesmo ser alteradas durante o processo de transmisso, portanto o aspecto de segurana tem que ser levado em conta. Para garantir essa segurana todo trfego tem que ser feito atravs de HTTPS. O servidor onde ser instalado o Funambol precisa ser instalado de forma que consiga acessar correio do Expresso, bem como ter permisso de escrita no banco de dados.

RequisitosServidor Funambol Funambol-7.0.6

Funambol-psync-1.0.0.s4j

Jre-1.5.0 ou maior

PostgreSql 8.3

Dispositivos Mveis Os dispositivos compatveis so: Dispositivos que suportem o padro SyncML1;

Smartphones clientes, tendo intalado:

Windows Mobile (a partir da verso 5);Celulares compatveis com java, atendendo aos requisitos:

MIDP 2.0; WMA 1.1;

Heap de pelo menos 800Kb;

Tamanho mximo de download de pelo menos 250Kb

Topologia

A topologia dever ser similar ao do Expresso na Internet, onde ser utilizado o servidor apache na ZDM que atua como proxy, reencaminhando o pedido de sincronia do dispositivo na Internet para o servidor Funambol na rede interna. Por segurana toda a comunicao dever ser feita atravs de HTTPS, na porta 8443.

Comunicao Instantnea

Workflow

Setup de aplicaes

. Overview A atualizao de objetos de banco de dados de um mdulo do Expresso baseado em um procedimento denominado Setup3.No setup3 do Expresso foram introduzidas novas funcionalidades para instalao ou update de aplicaes/mdulo. Este set de alteraes permite abstrair a instalao de aplicaes e se constitui de um processo independente para upgrade de objetos do banco de dados. Isto permite desenvolvedores escreverem um nico conjunto de definio ou upgrades/updates de tabelas necessrios a aplicao.O Setup3 permite ao desenvolvedor controlar todo processo de instalao e upgrade de uma aplicao(mdulo) no Expresso.

. Arquivos do Setup da aplicaoOs arquivos desta seo esto contidos no diretrio aplicao/setup. Todos os mdulos devero conter estes arquivos para poderem operar com o Setup3. . setup.inc.php (Requirido) Informaes Bsicas

Os valores desta seo devem ser usados por todas as aplicaes que se valerem do Setup3 para instalao e upgrade.A primeira seo a do setup.inc.php e define as informaes bsicas e crticas a respeito da aplicao, conforme a seo seguinte:

/* Exemoplo : Basic information about this app */ $setup_info['contactcenter']['name'] = 'contactcenter'; $setup_info['contactcenter']['title'] = 'ContactCenter'; $setup_info['contactcenter']['version'] = '2.1.000'; $setup_info['contactcenter']['app_order'] = 4; $setup_info['contactcenter']['enable'] = 1; $setup_info['contactcenter']['author'] = 'Raphael Derosso Pereira, Jonas Goes'; $setup_info['contactcenter']['note'] = 'Contact Center is the new eGW addressbook. It manages all contacts, companies and their informations'; $setup_info['contactcenter']['license'] = 'GPL'; $setup_info['contactcenter']['description'] = 'Contact Center is a modern addressbook application that introduces a new way to ' . 'do things in the Web Application World. Its key advantages are the possibility to ' . 'manage Contacts and Companies independently. Users can access 3 types of catalogs: ' . 'Personal (which manages people and companies), Global (LDAP or DB) and Aliens.';

$setup_info['contactcenter']['maintainer'] = 'Raphael Derosso Pereira'; $setup_info['contactcenter']['maintainer_email'] = '[email protected]';

'name' usado pelo Expresso, tipicamente na variavel $phpgw_info, como 'currentapp' ou 'app_name'.'title' Deve ser usado na barra de navegao, no mdulo de admin, nas preferncias, bem como na prpria aplicao se necessrio.'version' Define a verso da aplicao e table code. Este deve ser incrementado Este deve ser incrementado sempre que voce criar uma nova funo e tipicamente somente para modificaes em tabelas. Se houverem modificaes substanciais no cdigo voce poder incrementa-lo tambm. Incremento na verso no uma atividade trivial e deve ter base de conhecimento para tal.'app_order' Determina a ordem da aplicaes no navbar. Se o nmero que voc estabelecer estiver o mesmo como estabelecido para outro app, o app cujo 'nome' primeiro no alfabeto ingls pareceria primeiro. Os menores nmeros so exibidos mais perto do fim superior ou esquerdo do navbar, dependendo do leiaute.'enable' usado pela API para determinar se uma aplicao inutilizada, permitida, ou permitida mas oculta contra o navbar.A maior parte de aplicaes querero este jogo a um valor de 1 (permitido).O notifywindow app estabelece isto em 2, que o guarda no navbar. Permitir de 0 inutilizaria o app por defoult.H um outro caso especial, 3, que usado principalmente pela prpria API. Da perspectiva de setup3, o API uma aplicao como qualquer outra aplicao. Estabelecendo a bandeira 'permito' em 3, a API ainda permitido, mas no ser assinvel a um usurio como uma verdadeira aplicao. Ser por meio disso oculto contra o admin de edio de usurio/grupo e aplicao.

Informaes de tabelasSomente aplicaes que utilizam tabelas iro usar esta seoA prxima sesso dos valores de $setup_info um array definindo todas as tabelas da aplicao: /* Exemplo ContactCenter Tables */ $setup_info['contactcenter']['tables'][] = 'phpgw_cc_status'; $setup_info['contactcenter']['tables'][] = 'phpgw_cc_prefixes'; $setup_info['contactcenter']['tables'][] = 'phpgw_cc_suffixes'; $setup_info['contactcenter']['tables'][] = 'phpgw_cc_typeof_ct_rels'; $setup_info['contactcenter']['tables'][] = 'phpgw_cc_typeof_ct_addrs'; $setup_info['contactcenter']['tables'][] = 'phpgw_cc_typeof_ct_conns'; $setup_info['contactcenter']['tables'][] = 'phpgw_cc_typeof_co_rels'; $setup_info['contactcenter']['tables'][] = 'phpgw_cc_typeof_co_addrs'; $setup_info['contactcenter']['tables'][] = 'phpgw_cc_typeof_co_conns'; $setup_info['contactcenter']['tables'][] = 'phpgw_cc_typeof_co_legals'; $setup_info['contactcenter']['tables'][] = 'phpgw_cc_state'; $setup_info['contactcenter']['tables'][] = 'phpgw_cc_city'; $setup_info['contactcenter']['tables'][] = 'phpgw_cc_addresses'; $setup_info['contactcenter']['tables'][] = 'phpgw_cc_connections'; $setup_info['contactcenter']['tables'][] = 'phpgw_cc_company'; $setup_info['contactcenter']['tables'][] = 'phpgw_cc_company_rels'; $setup_info['contactcenter']['tables'][] = 'phpgw_cc_company_addrs'; $setup_info['contactcenter']['tables'][] = 'phpgw_cc_company_conns'; $setup_info['contactcenter']['tables'][] = 'phpgw_cc_company_legals'; $setup_info['contactcenter']['tables'][] = 'phpgw_cc_contact'; $setup_info['contactcenter']['tables'][] = 'phpgw_cc_contact_rels'; $setup_info['contactcenter']['tables'][] = 'phpgw_cc_contact_addrs'; $setup_info['contactcenter']['tables'][] = 'phpgw_cc_contact_conns'; $setup_info['contactcenter']['tables'][] = 'phpgw_cc_contact_company'; $setup_info['contactcenter']['tables'][] = 'phpgw_cc_contact_grps'; $setup_info['contactcenter']['tables'][] = 'phpgw_cc_groups'; HooksAlgumas aplicaes iro usar esta seo.Hooks so parte do $setup_info e contm uma lista simples de hooks que a aplicao ir utilizar:

/* The hooks this app includes, needed for hooks registration */ $setup_info['contactcenter']['hooks'][] = 'admin'; $setup_info['contactcenter']['hooks'][] = 'preferences'; $setup_info['contactcenter']['hooks'][] = 'config_validate'; $setup_info['contactcenter']['hooks'][] = 'sidebox_menu';

DependnciasTodas as aplicaes devem possuir pelo menos uma entrada

No final desta seo h uma lista de uma lista de outras aplicaes que a aplicao requer para funcionametno:,

$setup_info['addressbook']['depends'][] = array('appname' => 'phpgwapi','versions' => Array('0.9.10','0.9.11','0.9.12','0.9.13'));

Esta a configurao standard para funcionamento sob o Expresso. Basicamente fornece a API como aplicao necessria e as verses da API com que a aplicao compatvel . Se voc incluir aqui uma aplicao ela somente ser instalada somente se a aplicao listada j tiver sido instaladatables_baseline.inc.php (Recomendado) Uma aplicao que requerer pelo menos um upgrade ir requerer esta seo.O arquivo tables_baseline representa a mais antiga verso suportada pelas tabelas da aplicao. Este arquivo usado s no processo de upgrade, e crtico ao seu xito. Ele contm uma tabela independente de banco de dados, campo, chave e definies de ndice.Esta tabela formatada para o uso pelo arquivo de classe schema_proc_array.inc.php em setup3. Ver a seo tables_update abaixo para mais detalhe sobre schema_proc, mas por agora, aqui est uma definio de mesa simples neste formato:$phpgw_baseline = array('skel' => array('fd' => array('skel_id' => array('type' => 'auto','nullable' => false),'skel_owner' => array('type' => 'varchar','precision' => 25),'skel_access' => array('type' => 'varchar','precision' => 10),'skel_cat' => array('type' => 'int','precision' => 4),'skel_des' => array('type' => 'text'),'skel_pri' => array('type' => 'int','precision' => 4)),'pk' => array('skel_id'),'fk' => array(),'ix' => array(),'uc' => array()));Este array multi-dimensional contm 1 subarray com 5 subs do seu prprio. O primeiro array ('skel' em cima) define o nome da tabela. Abaixo disto so 5 sees, 'fd' para definies de campos, 'pk' para definir chaves primrias,'fk' para definir chaves estrangeiras,'ix' para definir campos postos no ndex, 'uc' para definir colunas que necessitam valores nicos. No exemplo, a tabela 'skel' tem 6 campos (skel_id, skel_owner, skel_access, skel_cat, skel_des, skel_pri), e 'skel_id' definido tambm como a chave primria . Este formato foi escolhido como uma soluo para definir tabelas e campos sem necessidade de manter diferentes arquivos em diferentes databases para definies de tabelas.tables_current.inc.php (Recomendado) Para todas as aplicaes com tabelas.O arquivo tables_current tem a definio de tabelas atuais e combina com a cadeia 'de verso' em $setup_info bem como o cdigo atual. Este arquivo usado s para novas instalaes, ou sempre que a aplicao seja retirada e reinstalada. O formato e o nome do array neste arquivo o mesmo para ao arquivo tables_baseline enumerado em cima.De fato, sempre que se deva modificar as definies de tabelas, voc comearia copiando o arquivo atual para o arquivo tables_baseline. Depois de ter criado as suas rotinas de upgrade, voc ento recriaria o arquivo atual para combinar com as novas definies da tabela.Ex:$phpgw_baseline = array( 'phpgw_cc_status' => array( 'fd' => array( 'id_status' => array( 'type' => 'int', 'precision' => 2, 'nullable' => false ), 'status_name' => array( 'type' => 'varchar', 'precision' => 30 ) ), 'pk' => array( 'id_status' ), 'fk' => array(), 'ix' => array(), 'uc' => array() ), 'phpgw_cc_prefixes' => array( 'fd' => array( 'id_prefix' => array( 'type' => 'int', 'precision' => 2, 'nullable' => false ), 'prefix' => array( 'type' => 'varchar','precision' => 30) ), 'pk' => array('id_prefix'), 'fk' => array(), 'ix' => array(), 'uc' => array() ), /* Version 2.0 */ 'phpgw_cc_groups' => array( 'fd' => array( 'id_group' => array( 'type' => 'auto', 'nullable' => false ), 'title' => array( 'type' => 'varchar', 'precision' => 50 ), 'owner' => array( 'type' => 'int', 'precision' => 8, 'nullable' => false ), 'short_name' => array( 'type' => 'text', 'precision' => 21 ), ), 'pk' => array('id_group'), 'fk' => array(), 'ix' => array(), 'uc' => array() ), );

tables_update.inc.php (Recomendado) Toda aplicao que requeira um upgrade de uma verso prvia de tabelas.Este arquivo ser o mais complexo de todos os arquivos do setup com os quais voc estar trabalhando. Ele conter todas as funes de upgrade capazes de fazer um upgrade de qualquer verso possvel do seu egroupware app. Essas rotinas de upgrade rudemente combinam com as velhas funes de upgrade , mas o uso de objetos e os mtodos modificaram-se dramaticamente:

$test[] = '0.4.1'; function contactcenter_upgrade0_4_1() { $oProc = $GLOBALS['phpgw_setup']->oProc; $oProc->DropTable('phpgw_cc_city'); $oProc->DropTable('phpgw_cc_state'); $oProc->CreateTable( 'phpgw_cc_state',array( 'fd' => array( 'id_state' => array( 'type' => 'int', 'precision' => 8, 'nullable' => false), 'id_country' => array( 'type' => 'char', 'nullable' => false, 'precision' => 2), 'state_name' => array( 'type' => 'varchar', 'precision' => 30), 'state_symbol' => array( 'type' => 'varchar', 'precision' => 10) ), 'pk' => array('id_state'), 'fk' => array('id_country' => array('phpgw_common_country_list' => 'id_country')), 'ix' => array(), 'uc' => array() ) ); $oProc->CreateTable( 'phpgw_cc_city', array( 'fd' => array( 'id_city' => array( 'type' => 'int', 'precision' => 8, 'nullable' => false ), 'id_state' => array( 'type' => 'int', 'precision' => 8 ), 'id_country' => array( 'type' => 'char', 'nullable' => false, 'precision' => 2), 'city_timezone' => array( 'type' => 'int', 'precision' => 2 ), 'city_geo_location' => array( 'type' => 'varchar', 'precision' => 40 ), 'city_name' => array( 'type' => 'varchar', 'precision' => 60, 'nullable' => 'false' ), ), 'pk' => array('id_city'), 'fk' => array('id_state' => array('phpgw_cc_state' => 'id_state') ), 'ix' => array(), 'uc' => array() ) ); } $test[] = '1.21';function contactcenter_upgrade1_21() {$GLOBALS['setup_info']['contactcenter']['currentver'] = '2.0.000';// Bug fixing for type cast problem PGSQL version > 8.1. Replacing trigger function:$GLOBALS['phpgw_setup']->db->query("CREATE OR REPLACE function share_catalog_delete() returns trigger as '"."begin if old.acl_appname = ''contactcenter'' and old.acl_location!=''run'' then delete from "."phpgw_cc_contact_rels where id_contact=old.acl_location::bigint and id_related=old.acl_account "."and id_typeof_contact_relation=1; end if; return new; end;' language 'plpgsql'");return $GLOBALS['setup_info']['contactcenter']['currentver'];}$test[] = '2.0.000';function contactcenter_upgrade2_0_000() {$GLOBALS['setup_info']['contactcenter']['currentver'] = '2.0.001';$GLOBALS['phpgw_setup']->db->query("ALTER TABLE phpgw_cc_contact ADD COLUMN web_page character varying(100)");$GLOBALS['phpgw_setup']->db->query("ALTER TABLE phpgw_cc_contact ADD COLUMN corporate_name character varying(100)");$GLOBALS['phpgw_setup']->db->query("ALTER TABLE phpgw_cc_contact ADD COLUMN job_title character varying(40)");$GLOBALS['phpgw_setup']->db->query("ALTER TABLE phpgw_cc_contact ADD COLUMN department character varying(30)");return $GLOBALS['setup_info']['contactcenter']['currentver'];}

Esta funo de upgrade simplesmente atualiza o nmero de verso atual. Observe que no h s uma funo de upgrade, mas tambm a colocao de um valor no $test . O nome 'test' um remanescente do velho programa de setup. Contudo, este nome deve ser usado para o processo de upgrade para trabalhar. Antes de cada uma das suas funes de upgrade, acrescente o valor da verso prvia a $test.Agora de uma olhada ao nome de funo. O nome importante e deve ser estruturado como o nome de aplicao e a verso da qual voc est pretendendo fazer um upgrade. O ' .'s na cadeia de verso substitudo com ' _ '.In addition to the basic API db class functions, schema_proc introduces the following special functions:

CreateTable:

$phpgw_setup->oProc->CreateTable?('categories', array('fd' => array('cat_id' => array('type' => 'auto','nullable' => false),'account_id' => array('type' => 'int','precision' => 4,'nullable' => false, 'default' => 0),'app_name' => array('type' => 'varchar','precision' => 25,'nullable' => false),'cat_name' => array('type' => 'varchar', 'precision' => 150, 'nullable' => false),'cat_description' => array('type' => 'text', 'nullable' => false)),'pk' => array('cat_id'),'ix' => array(),'fk' => array(),'uc' => array()));AddColumn:

$phpgw_setup->oProc->AddColumn?('phpgw_categories','cat_access',array('type' => 'varchar', 'precision' => 25));AlterColumn:

$phpgw_setup->oProc->AlterColumn?('phpgw_sessions','session_action',array('type' => 'varchar', 'precision' => '255'));DropColumn:

$newtbldef = array("fd" => array('acl_appname' => array('type' => 'varchar', 'precision' => 50),'acl_location' => array('type' => 'varchar', 'precision' => 255),'acl_account' => array('type' => 'int', 'precision' => 4),'acl_rights' => array('type' => 'int', 'precision' => 4)),'pk' => array(),'ix' => array(),'fk' => array(),'uc' => array());$phpgw_setup->oProc->DropColumn?('phpgw_acl',$newtbldef,'acl_account_type');

default_records.inc.php (Opcional) Para aplicaes com tabelas que necessitem carregar alguns valores como default.

// enable auto-loading of holidays from localhost by default $oProc->query("INSERT INTO phpgw_config (config_app, config_name, config_value) VALUES ('phpgwapi','auto_load_holidays','True')"); $oProc->query("INSERT INTO phpgw_config (config_app, config_name, config_value) VALUES ('phpgwapi','holidays_url_path','localhost')");

test_data.inc.php (Opcional) Any developer wanting to test the full list of upgrade routines can use this file.test_data.inc.php similar ao default_records above. Ele chamado somente pelo schematoy.php e nunca instalado com uma nova instalao ou upgrade.Este um arquivo de desenvolvimento somente. O insert ser aplicvel nas tables_baseline definidas.language files (Requirido) Todas as aplicaes devem ter pelo menos um arquivo de traduo inglesa a ser utilizado pela aplicao em chamadas lang().

Formato do arquivo:

{phrase}{TAB}{appname}{TAB}{LANG_CODE}{TAB}{translation}e.g:first name common en First Namefirst name common de VornameNome dos arquivos:

phpgw_{LANG_CODE}.lange.g.English: phpgw_en.langGerman: phpgw_de.lang

Developer Toolssqltoarray.php Mostra o corrente schema_proc de definio das tabelas da aplicao.A aplicao le o status corrente das tabelas do banco de dados e parseia esta informao segundo a definio para o schema_proc.A aplicao web l a posio das tabelas atuais no banco de dados. Ele ento analisa esta informao em um array de definio de tabela de schema_proc. Ao visitar a app, lhe mostrado uma lista de aplicaes atualmente instaladas e com suas definies de tabelas . Voc ento pode selecionar uma aplicao/modulo ou todas. Desta forma voc ento pode carregar de um arquivo tables_current, conveniente. schematoy.php Executa um ciclo completo de upgrades, incluindo test_data.

All application tables are dropped.

tables_baseline.inc.php is loaded.

test_data.inc.php is loaded

tables_update.inc.php is loaded.

a full application upgrade test begins.

O processo de install/upgrade Setup internal upgrade functionsO Setup usa um conjunto de funes para novas instalaes e/ou upgrades. Esses so implementados como laos de multi-passo. Para uma nica instalao/upgrade de aplicao/mdulo realizado um nico passo. J para instalao/upgrade de mltiplas aplicaes, mltiplos passos so feitos automaticamente. A ordem de instalao determinada pelas dependncias da aplicao. Outro fator de determinao a ordem na qual os diretrios de aplicao e os arquivos setup.inc.php so lidos no sistema de arquivos.Novas instalaesDeteco

Cada execuo do index.php ou applications.php em setup3 executa primeiramente as rotinas de deteno.Estas rotinas lem os dados em cada arquivo setup.inc.php, e nas tabelas 'aplications' 'phpgw_applications' como apropriado, e s se uma dessas tabelas existir. Estes dados so analisados no array $setup_info . Neste caso, este array contm a informao de todas as aplicaes. Baseado na informao, um STATUS estabelecido em um dos valores seguintes valores:

U - Upgrade required/available

R - upgrade in pRogress

C - upgrade Completed successfully

D - Dependency failure

F - upgrade Failed

V - Version mismatch at end of upgrade

M - Missing files at start of upgrade (Not used, proposed only)

Usando esta informao, a lgica do setup no em index.php determina em que modo estamos. O index.php projetado s para 'a Gerncia de Aplicao Simples', que o Passo 1 do processo de setup. Para mais manipulao de aplicao, use applications.php, index.php ento diz ao usurio queas suas aplicaes so atuais

algumas das suas aplicaes so fora da sincronizao

nenhum db existe, etc.

J que para novas instalaes, todas as aplicaes sero fora da sincronizao, desde que no h at ento uma tabela 'phpgw_applications' no banco de dados para dizer ao setup o que Status para qualquer aplicao.

SelectionNo h nenhuma seleo para instalao da aplicao no modo 'nova instalao'. Todas as aplicaes fisicamente presentes sero instaladas, ou pelo menos tentadas.

InstallationUma vez que o usurio do SETUP clicar o boto para instalar todas as aplicaes, o seguinte ocorre:

O array setup_info passado a funo process_pass (), usando um mtodo ='new'

As aplicaes cujo status flag ='U' (API no primeiro passo) ento transmitida funo process_current () . Isto trata a incluso e a instalao do arquivo da aplicao tables_current.inc.php.

A aplicao registrada como uma nova aplicao na tabelaa 'phpgw_applications'. Se por alguma razo houverem dados nesta tabela desta aplicao, ser atualizada. Os seus hooks, se houver, so registrados na tabela 'phpgw_hooks'.

Depois, este array passado para funo process_default_records () . Se este arquivo estiver presente no diretrio do setup da aplicaol, as queries sql aqui so exetutadas para instalar os dados s tabelas da aplicao.

O loop acima mencionado repetido at que todos os StTATUS de aplicao fiquem 'C'. Contudo, se uma aplicao falha a instalao por alguma razo, ento ser skipada no seguinte passo.

4.3 Upgrades DetecoS uma diferena de verso da API provocar um pedido automatizado ao usurio para fazer um upgrade. Contudo, se o API estiver desincronizada, clicando 'Upgrade' em index.php tambm tentar fazer um upgrade de outras aplicaes que podem estar desincronizadas, tambm. Como o phpgwapi continua estabilizar-se, sentido que este mtodo do upgrade ficar menos e menos comum.SelectionDentro de applications.php, uma matriz colorida codificada de aplicao e aes exibida. Dependendo do STATUS de cada aplicao, certas aes estaro enabled ou disabled. Essas aes incluem 'install', 'upgrade', 'remove'. Se algo estiver muito errado com as tentativas de instalar ou fazer um upgrade de uma aplicao, outra coluna chamada 'resoluo' ento ser exibido como link. Este link mostrar informaes adicionais que seriam teis para determinar como resolver o problema. Assumindo que tudo ocorrera bem, o usurio pode selecionar aplicaes que necessitam upgrade desta lista. Uma vez selecionado, o usurio submete e isto dirigido para :

remove

install

upgrade

Upgrade

Quando selecionado upgrade de aplicao ocorre o seguinte:

Uma verso stripped down do array de setup_info passado para funo process_upgrade () . Este array contm s a informao da aplicao selecionada

Na funo process_upgrade (), o arquivo tables_baseline.inc.php da aplicao carregado.

O arquivo tables_update.inc.php da aplicao carregado

Os contedos do array de teste usado para fazer um loop pela lista inteira de funes de upgrade da aplicao.

Quando o currentver (installed) fecha com a verso (avaiable), process_upgrade () termina, estabelecendo STATUS da app a 'C'.

Somente antes de terminar, a aplicao e os seus hooks so atualizados nas tabelas 'phpgw_applications' e 'phpgw_hooks'.

4.4 Uninstallation/Removal SelectionA seleo de aplicaes pode ser feita via applications.php, de modo similar ao upgrade.UninstallationQuando uma aplicao selecionada para remoo:Um verso stripped down do array setup_info passado para funo process_droptables(). Esta funo retira todas as entradas na tabela da aplicao, mas s depois de verificar para ver se as tabelas existem.

Os HOOKS da aplicao so desregistrados (retirados de 'phpgw_hooks').

A prpria aplicao desregistrada (retirada de 'phpgw_applications').

MiscelniasAuto fieldsPara campos tipos auto, o schema_proc cria uma seqncia automaticamente baseada no nome da tabela de bancos de dados que requeiram seqncias. Em caso de postgresql, o limite deste nome baseado nos nossos testes 31 carateres. O formato de schema_proc :

$sSequenceSQL = sprintf("CREATE SEQUENCE seq_%s", $sTableName);O limite mximo para tablename 27 carcteres. Default 0Para campos int, o default de 0 no assumido. Voce deve explicitamente definir o default na definio da tabela.Referncias

[CEIW-LG] SERPRO/CEIW Centro de Especializao e Infra-estrutura Web. Logon no Expresso com uso de Certificado Digital. login_certificado_v1.odt :

[ICP-GL] ICP-Brasil Infra-estrutura de Chaves Pblicas Brasileiras. Glossrio Completo. glossario_iti.pdf:

[CEIW-AD] SERPRO/CEIW Centro de Especializao e Infra-estrutura Web. Assinatura Digital para mensagem de correio eletrnico Expresso.

[CECD-TK] SERPRO/CECD Centro de Especializao em Certificao Digital. Cartilha de Orientao para Utilizao de Certificado Digital em Token Criptogrfico . manual2_item_21_1_1_Cartilha_Procedimentos_Autenticacao_Tokens_V1_1-1.pdf :