Inventário de fontes e provedores
Pergunta ao servidor quais provedores estão instalados (GETFEATUREPROVIDERS), lista os FeatureSource do repositório e lê provedor, parâmetros, extensões e junções de cada um.
Octo para fontes de dados FDO no MapGuide
No MapGuide Open Source 4.0, todo mapa lê dados por um provedor FDO: PostGIS, SQL Server, Oracle, OGR, GDAL, SHP, SDF, SQLite, WMS, WFS. O Octo lê pela API mapagent os provedores e as fontes do repositório, acha senha em claro e conexão quebrada, leva arquivos para o banco com contagem conferida e mede filtros e junções em vez de supor. Trocar fonte em produção, criar objeto no banco e publicar dado pessoal ficam com o administrador, o DBA e o responsável técnico.
Seis entregas possíveis, tiradas do levantamento. Todas começam com conta de leitura, registram a versão do MapGuide, do FDO e de cada provedor, e vão para revisão de quem responde pelo servidor e pelo dado.
Pergunta ao servidor quais provedores estão instalados (GETFEATUREPROVIDERS), lista os FeatureSource do repositório e lê provedor, parâmetros, extensões e junções de cada um.
Marca o FeatureSource com Password preenchido no XML e propõe %MG_USERNAME%/%MG_PASSWORD% com a credencial guardada à parte (MG_USER_CREDENTIALS), sem nunca copiar a senha.
TESTCONNECTION em todas as fontes, fora do pico, com o resultado cruzado com as camadas e mapas que dependem de cada uma.
Leva SHP e SDF para o PostGIS com ogr2ogr, índice espacial e contagem de origem e destino, e prepara o novo FeatureSource OSGeo.PostgreSQL em homologação.
Acha AttributeRelate com ForceOneToOne escondendo 1:N, mede o tempo da camada e propõe view no banco quando o DBA concorda.
Cruza GETPROVIDERCAPABILITIES com os filtros e expressões das camadas, e testa LIKE, IN, NULL, INTERSECTS e WITHINDISTANCE pela mapagent.
O mesmo ciclo do Octo, aplicado às fontes de dados do MapGuide. Cada braço tem um papel estreito; quem troca fonte em produção, cria objeto no banco e decide o que é publicado são pessoas.
Provedores e versões do servidor, FeatureSources do repositório e as camadas e mapas que dependem de cada um.
Classes, chaves de identidade, contexto espacial e cardinalidade das junções; aponta o 1:N escondido por ForceOneToOne.
Senha em claro no XML, conta de banco com privilégio demais e dado pessoal em camada pública. Conta de leitura em todo o levantamento.
Provedor nativo ou OGR; view no banco ou AttributeRelate; arquivo na rede ou PostGIS; o que vai e o que não vai para o pool de conexões.
Python, shell e SQL com log, só leitura por padrão, senha fora da linha de comando e a fonte de cada sintaxe anotada no arquivo.
Contagem de feições pela mapagent, tempo da janela do mapa e plano da consulta no banco. Ausência de erro não é conferência.
Só com o seu ok, prepara o FeatureSource novo em Session:// ou numa pasta de homologação. A troca em Library:// de produção é feita por uma pessoa.
Versão do MapGuide, do FDO e do provedor, parâmetros sem senha, filtros testados, tempos medidos e quem aprovou cada troca.
O Octo trabalha com acesso de leitura e como apoio. Não troca fonte em produção, não cria conta nem objeto no banco sem o DBA, não altera o serverconfig.ini sem o administrador e não decide o que pode ser publicado.
O critério que o Octo usa para escolher, com o código e a documentação da versão instalada.
| Tarefa | Caminho | Observação |
|---|---|---|
| Saber o que o servidor lê | GETFEATUREPROVIDERS, GETPROVIDERCAPABILITIES | Nada é alterado |
| Listar e ler as fontes | ENUMERATERESOURCES + GETRESOURCECONTENT | Senha mascarada na saída |
| Testar conexões | TESTCONNECTION | Em horário combinado |
| Ver esquema e classes | DESCRIBEFEATURESCHEMA, GETCLASSES, GETSPATIALCONTEXTS | Contexto espacial de cada fonte |
| Contar e consultar feições | SELECTAGGREGATES, SELECTFEATURES com FILTER | Operadores dependem do provedor |
| Escrever feições | Web API (PHP, Java, .NET) | Não exposto pela mapagent |
| Guardar credencial | %MG_USERNAME%/%MG_PASSWORD% + MG_USER_CREDENTIALS | Senha fora do XML |
| Arquivo para banco | ogr2ogr + índice GIST + contagem | GDAL da estação ≠ GDAL 2.4.4 do FDO |
| Junção entre fontes | View no banco, quando o DBA concorda | UseFdoJoinOptimization só vale na mesma fonte |
| Ajustar pool e cache | [FeatureServiceProperties] do serverconfig.ini | Vale para o servidor inteiro |
Três degraus. Cada um só faz sentido depois que o anterior mostrou resultado na sua equipe.
Proposta, não promessa
O Octo mostra o que o servidor lê, o que está quebrado e onde há senha exposta, sem mexer em nada.
Arquivos levados ao banco com contagem conferida e junções lentas comparadas com views, sempre em homologação.
Modelos aprovados de FeatureSource por provedor, conferência automática a cada recurso novo e monitoramento de conexões.
Cada ponto abaixo tem fonte publicada pela OSGeo (página do projeto, listas oficiais, área de downloads), pelo repositório oficial ou pela Autodesk. Os exemplos são roteiros, não execuções. As fontes estão na seção seguinte.
4
pontos com fonte publicada, cada um com a referência indicada ao lado.
O Octo prepara tudo, mas não assina. O documento que vale continua com quem responde por ele.
Levanta, calcula, organiza e gera os documentos: scripts, inventários, relatórios e mapas.
Entrega: material pronto para conferirO profissional habilitado confere o que o Octo entregou antes de assinar. Se algo não fecha, volta para o Octo com a correção.
Etapa: conferência por quem assinaO Octo não assina. Projeto, laudo, ART/RRT, prestação de contas e qualquer documento oficial continuam assinados pelo profissional habilitado da empresa ou do órgão: aqui, o responsável técnico pelo mapa ou pelo sistema.
Assinatura: responsável técnico pelo mapa ou sistemaCódigo do MapGuide e do FDO no SVN da OSGeo e no espelho do GitHub, listas da OSGeo e documentação de GDAL e PostgreSQL usados no levantamento, consultados em 31/10/2026.
O diagnóstico começa por um inventário das fontes do seu MapGuide e um teste de conexões, com conta de leitura, sem mexer em nada. Você recebe a lista do que está quebrado, do que está exposto e de como conferir, e decide com ela na mão.