Repository inventory
Lists Library:// with ENUMERATERESOURCES, downloads each XML with GETRESOURCECONTENT and records the type, schema version, FDO provider and dependencies of every resource.
Octo for AIMS and migration
Autodesk stopped Infrastructure Map Server in 2018, and MapGuide Open Source, which was always its foundation, reached version 4.0 in October 2025. Octo inventories the repository through the mapagent API, separates what migrates from what needs adjustment, copies the resources to a parallel 4.0 server and compares the rendered map on both sides. The cutover date, the accepted differences and the production server stay with the administrator and the technical lead.
Six possible deliverables, drawn from the assessment. All of them start with a read-only account, work on a parallel server and go to review by whoever is accountable for the server.
Lists Library:// with ENUMERATERESOURCES, downloads each XML with GETRESOURCECONTENT and records the type, schema version, FDO provider and dependencies of every resource.
Links each map to its layers and data sources, so a provider with no equivalent immediately shows which maps and layouts it would break.
Deliverable: list of maps affected by each blockerCopies resource by resource with SETRESOURCE, first into a dry-run folder, or builds an .mgp package in Maestro for APPLYRESOURCEPACKAGE.
Where there is an open equivalent, such as Autodesk's Oracle provider to King Oracle, it swaps it in a copy of the XML, leaves the credential blank and tests with TESTCONNECTION.
Requests the same map, at the same center and scale, from both servers with GETMAPIMAGE and counts the pixels that changed; a person looks only at the pairs above the threshold.
Providers with no equivalent, custom PHP pages, data outside the repository, bundled PHP version and reliance on a single maintainer, with what each one costs.
Deliverable: risks for the accountable person to decide onThe same Octo cycle, applied to moving off a map server. Each arm has a narrow role; the people decide the cutover, accept differences and are accountable for the server.
AIMS or MapGuide version, operating system, installed providers, viewers, custom pages and where the data lives.
FeatureSources, providers, folder aliases and schema version of every resource, with the dependencies between them.
Read-only account for the inventory, passwords kept out of scripts, bundled PHP and the php2shell mitigation. Personal data served on the map is assessed (LGPD) before it leaves the client's environment.
Parallel server or in-place upgrade; .mgp package or resource-by-resource copy; equivalent provider or rebuild the source.
Inventory, copy, provider swap and image comparison, with dry-run mode, a log and the source of every syntax noted.
TESTCONNECTION on every source, image comparison and screen tests with the least-privileged profile. No error is not the same as checked.
Writes outside the dry-run folder only with the administrator's OK, and follows the cutover with the old server still running until sign-off.
Versions of both servers, decision per resource, accepted differences and who accepted them. What held in one migration does not automatically hold for another.
Octo works with read access and in a support role. It does not decide the cutover, accept rendering differences, choose a license or replace the server administrator.
The criteria Octo uses to choose. Operation names were checked in the server source code (snapshot from January 2023).
| Task | Path | Note |
|---|---|---|
| Find the server version | OPERATION=GETSITEVERSION | On both sides, before anything else |
| List the repository | ENUMERATERESOURCES with DEPTH=-1 | Nothing is changed |
| Read each resource | GETRESOURCECONTENT | Schema in the noNamespaceSchemaLocation attribute |
| Who uses this resource | ENUMERATERESOURCEREFERENCES | Before touching a source |
| Copy a resource | SETRESOURCE on the target | First into Library://Migracao/ |
| Copy attached files | GETRESOURCEDATA and SETRESOURCEDATA | SDF, SHP and images inside the repository |
| Load a package | Maestro builds the .mgp; APPLYRESOURCEPACKAGE | Cross-version compatibility to be measured in the dry run |
| Test a data source | TESTCONNECTION | After swapping the provider |
| Compare rendering | GETMAPIMAGE + compare -metric AE | Same center, scale and size |
| Authoring after the migration | MapGuide Maestro (6.0m13) | Replaces Infrastructure Studio; does not read DWG |
Three steps. Each one only makes sense after the previous one has shown results on your team.
A proposal, not a promise
Octo shows the size of the migration without touching the server.
Resources copied in a dry run, providers swapped and maps compared pixel by pixel.
Visual comparison and inventory become routine with every upgrade, such as the planned 4.0.1.
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 systemMailing lists and code of the MapGuide project at OSGeo, Maestro documentation, Autodesk help and the maintainer's blog, consulted on Oct 31, 2026.
The assessment starts with an inventory of the repository using a read-only account, without touching the server. You get the list of what migrates, what needs adjustment and what is blocked, and you decide with it in hand.