Skip to content
Octo × FDO sources PT Request an assessment

Octo for FDO data sources in MapGuide

Every layer starts with a connection. Who decides what it exposes is you.

In MapGuide Open Source 4.0, every map reads data through an FDO provider: PostGIS, SQL Server, Oracle, OGR, GDAL, SHP, SDF, SQLite, WMS, WFS. Octo reads the repository's providers and sources through the mapagent API, finds plaintext passwords and broken connections, moves files into the database with a checked count, and measures filters and joins instead of assuming. Swapping a source in production, creating database objects and publishing personal data stay with the administrator, the DBA and the technical lead.

On the left, five data sources connected by FDO providers: PostGIS, SQL Server, Oracle, Shapefile and a WFS service, one of them with a failing connection; in the center, Octo; on the right, a fictitious map with parcel, hydrography and zoning layers and a terminal calling the mapagent TESTCONNECTION operation PostGIS OSGeo.PostgreSQL SQL Server OSGeo.SQLServerSpatial Oracle King.Oracle · failed .shp Shapefile OSGeo.SHP WFS service OSGeo.WFS SANITATION · NO CONNECTION FICTITIOUS MAP · 3 LAYERS OK $ curl mapagent.fcgi? OPERATION=TESTCONNECTION ok Registry ok Hydrography failed Sanitation passwd Taxes (plaintext) GETFEATUREPROVIDERS · FDO 4.2 OCTO × FDO SOURCES MAPGUIDE OS 4.0 F-04
Illustration: FDO providers feeding a map's layers and a connection test through mapagent; fictitious data.
MapGuide Open Source4.0announced Oct 12, 2025, LGPL 2.1
FDO in the 4.0 installer4.2FDO_VERSION=4.2.0.0, bundled GDAL 2.4.4
Providers in the Windows installer133 disabled by default (ArcSDE, King Oracle, MySQL)
Sources15listed at the end of the page
01

What Octo does with FDO sources.

Six possible deliverables, drawn from the assessment. All of them start with a read-only account, record the version of MapGuide, FDO and each provider, and go to review by whoever is accountable for the server and the data.

Source and provider inventory

Asks the server which providers are installed (GETFEATUREPROVIDERS), lists the repository's FeatureSources and reads the provider, parameters, extensions and joins of each one.

Deliverable: spreadsheet by source, without changing anything

Plaintext passwords and separate credentials

Flags any FeatureSource with Password filled in the XML and proposes %MG_USERNAME%/%MG_PASSWORD% with the credential stored separately (MG_USER_CREDENTIALS), never copying the password.

Deliverable: list of findings for the administrator

Batch connection test

TESTCONNECTION on every source, off-peak, with the result cross-referenced against the layers and maps that depend on each one.

Deliverable: impact map for each broken connection

Files into the database

Moves SHP and SDF into PostGIS with ogr2ogr, a spatial index and source and target counts, and prepares the new OSGeo.PostgreSQL FeatureSource in staging.

Deliverable: staging schema + count report

Measured join

Finds AttributeRelate with ForceOneToOne hiding a 1:N, measures the layer's time and proposes a database view when the DBA agrees.

Deliverable: side-by-side timings and reviewable SQL

Filters the provider accepts

Cross-checks GETPROVIDERCAPABILITIES against the layers' filters and expressions, and tests LIKE, IN, NULL, INTERSECTS and WITHINDISTANCE through mapagent.

Deliverable: filter test suite with counts and timings
02

Eight arms, one checked connection.

The same Octo cycle, applied to MapGuide data sources. Each arm has a narrow role; the people swap sources in production, create database objects and decide what is published.

  1. Discovery

    Maps what already exists

    Server providers and versions, the repository's FeatureSources and the layers and maps that depend on each one.

  2. Data

    Reads schemas and keys

    Classes, identity keys, spatial context and join cardinality; points out the 1:N hidden by ForceOneToOne.

  3. Security

    Handles access and data

    Plaintext passwords in the XML, database accounts with too much privilege and personal data in public layers. Read-only account throughout the assessment.

  4. Architecture

    Chooses the path

    Native provider or OGR; database view or AttributeRelate; file on the network share or PostGIS; what goes into the connection pool and what doesn't.

  5. Development

    Writes the script

    Python, shell and SQL with a log, read-only by default, passwords kept off the command line and the source of every syntax noted in the file.

  6. Review

    Checks by the numbers

    Feature count through mapagent, map window timing and the query plan in the database. No error is not the same as checked.

  7. Release

    Delivers in staging

    Only with your OK, it prepares the new FeatureSource in Session:// or in a staging folder. A person makes the swap in production Library://.

  8. Documentation

    Records what holds on your server

    MapGuide, FDO and provider versions, parameters without passwords, tested filters, measured timings and who approved each swap.

Octo works with read access and in a support role. It does not swap sources in production, create database accounts or objects without the DBA, change serverconfig.ini without the administrator, or decide what can be published.

03

Each task, its own path.

The criteria Octo uses to choose, with the code and documentation for the installed version.

TaskPathNote
Find out what the server readsGETFEATUREPROVIDERS, GETPROVIDERCAPABILITIESNothing is changed
List and read the sourcesENUMERATERESOURCES + GETRESOURCECONTENTPassword masked in the output
Test connectionsTESTCONNECTIONAt an agreed time
View schema and classesDESCRIBEFEATURESCHEMA, GETCLASSES, GETSPATIALCONTEXTSSpatial context of each source
Count and query featuresSELECTAGGREGATES, SELECTFEATURES with FILTEROperators depend on the provider
Write featuresWeb API (PHP, Java, .NET)Not exposed by mapagent
Store credentials%MG_USERNAME%/%MG_PASSWORD% + MG_USER_CREDENTIALSPassword outside the XML
File into the databaseogr2ogr + GIST index + countWorkstation GDAL ≠ FDO's GDAL 2.4.4
Join across sourcesDatabase view, when the DBA agreesUseFdoJoinOptimization only applies within the same source
Tune pool and cache[FeatureServiceProperties] in serverconfig.iniApplies to the whole server
04

From inventory to your own standard.

Three steps. Each one only makes sense after the previous one has shown results on your team.

A proposal, not a promise

1 Today

Inventory and findings

Octo shows what the server reads, what is broken and where passwords are exposed, without touching anything.

  • Spreadsheet of sources by provider
  • Tested connections and affected layers
  • List of security findings
Benefit: know the size of the problem before touching it
2 Next

Migration and measured joins

Files moved into the database with a checked count, and slow joins compared with views, always in staging.

  • Staging schema with a report
  • New FeatureSources with separate credentials
  • Filter test suite with timings
Benefit: the team reviews numbers, not XML after XML
3 Later

Your own source standard

Approved FeatureSource templates per provider, automatic checks on every new resource and connection monitoring.

  • FeatureSource template per database
  • Plaintext password check on every publish
  • Daily connection test with alerts
Benefit: no new layer is born with the old problem
05

Confirmed in a source.

Every point below has a source published by OSGeo (project page, official mailing lists, downloads area), by the official repository or by Autodesk. The examples are scripts, not executions. The sources are in the next section.

4

points with a published source, each with its reference shown alongside.

ConfirmedMapGuide 4.0 and FDO 4.2
MapGuide Open Source 4.0 was announced on Oct 12, 2025; the 4.0 branch installer declares FDO_VERSION=4.2.0.0. Both are LGPL 2.1.Source: mapguide-internals list; MapGuide.wxs and License.txt in the OSGeo SVN
ConfirmedInstaller providers
Thirteen providers registered on Windows; ArcSDE, King Oracle and MySQL disabled by default because they require external libraries. The Linux build script does not build ArcSDE.Source: MapGuide.wxs (4.0 branch); build_fdo.sh:190 ("We never build ArcSDE provider")
ConfirmedCredentials outside the XML
The code defines %MG_USERNAME%, %MG_PASSWORD% and the MG_USER_CREDENTIALS resource data, which replaces the placeholders with the stored credential.Source: ResourceDefs.cpp (4.0 branch); Web API reference, SetResourceData
ConfirmedFDO filters and joins
Null is "property NULL" (no IS); INTERSECTS, ENVELOPEINTERSECTS, WITHINDISTANCE and GEOMFROMTEXT are available. ForceOneToOne forces 1:1 on a 1:N relationship.Source: yyFilter.y; FeatureSource-1.0.0.xsd
06

What Octo does and what stays with you.

Octo prepares everything, but it does not sign. The document of record stays with whoever is accountable for it.

Octo prepares

Gathers, calculates, organizes and generates the documents: scripts, inventories, reports and maps.

Deliverable: material ready to check

Your team checks

The licensed professional checks what Octo delivered before signing. If something doesn't add up, it goes back to Octo with the correction.

Step: review by the signer

The signer

Octo does not sign. Designs, technical reports, ART/RRT, accountability reports and any official document are still signed by the licensed professional of the company or agency: here, the technical lead for the map or system.

Signature: technical lead for the map or system
07

Sources.

MapGuide and FDO code in the OSGeo SVN and the GitHub mirror, OSGeo mailing lists and GDAL and PostgreSQL documentation used in the assessment, consulted on Oct 31, 2026.

Your data sources, checked one by one.

The assessment starts with an inventory of your MapGuide's sources and a connection test, using a read-only account, without touching anything. You get the list of what is broken, what is exposed and how to check it, and you decide with it in hand.