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.
Octo for FDO data sources in MapGuide
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.
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.
Asks the server which providers are installed (GETFEATUREPROVIDERS), lists the repository's FeatureSources and reads the provider, parameters, extensions and joins of each one.
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.
TESTCONNECTION on every source, off-peak, with the result cross-referenced against the layers and maps that depend on each one.
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.
Finds AttributeRelate with ForceOneToOne hiding a 1:N, measures the layer's time and proposes a database view when the DBA agrees.
Cross-checks GETPROVIDERCAPABILITIES against the layers' filters and expressions, and tests LIKE, IN, NULL, INTERSECTS and WITHINDISTANCE through mapagent.
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.
Server providers and versions, the repository's FeatureSources and the layers and maps that depend on each one.
Classes, identity keys, spatial context and join cardinality; points out the 1:N hidden by ForceOneToOne.
Plaintext passwords in the XML, database accounts with too much privilege and personal data in public layers. Read-only account throughout the assessment.
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.
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.
Feature count through mapagent, map window timing and the query plan in the database. No error is not the same as checked.
Only with your OK, it prepares the new FeatureSource in Session:// or in a staging folder. A person makes the swap in production Library://.
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.
The criteria Octo uses to choose, with the code and documentation for the installed version.
| Task | Path | Note |
|---|---|---|
| Find out what the server reads | GETFEATUREPROVIDERS, GETPROVIDERCAPABILITIES | Nothing is changed |
| List and read the sources | ENUMERATERESOURCES + GETRESOURCECONTENT | Password masked in the output |
| Test connections | TESTCONNECTION | At an agreed time |
| View schema and classes | DESCRIBEFEATURESCHEMA, GETCLASSES, GETSPATIALCONTEXTS | Spatial context of each source |
| Count and query features | SELECTAGGREGATES, SELECTFEATURES with FILTER | Operators depend on the provider |
| Write features | Web API (PHP, Java, .NET) | Not exposed by mapagent |
| Store credentials | %MG_USERNAME%/%MG_PASSWORD% + MG_USER_CREDENTIALS | Password outside the XML |
| File into the database | ogr2ogr + GIST index + count | Workstation GDAL ≠ FDO's GDAL 2.4.4 |
| Join across sources | Database view, when the DBA agrees | UseFdoJoinOptimization only applies within the same source |
| Tune pool and cache | [FeatureServiceProperties] in serverconfig.ini | Applies to the whole server |
Three steps. Each one only makes sense after the previous one has shown results on your team.
A proposal, not a promise
Octo shows what the server reads, what is broken and where passwords are exposed, without touching anything.
Files moved into the database with a checked count, and slow joins compared with views, always in staging.
Approved FeatureSource templates per provider, automatic checks on every new resource and connection monitoring.
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.
Octo prepares everything, but it does not sign. The document of record stays with whoever is accountable for it.
Gathers, calculates, organizes and generates the documents: scripts, inventories, reports and maps.
Deliverable: material ready to checkThe 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 signerOcto 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 systemMapGuide 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.
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.