Server smoke test
CREATESESSION, GETSITEVERSION, TESTCONNECTION on every FeatureSource and a GETMAPIMAGE checked by its PNG signature: mapagent can return 200 with an error page.
Octo for the MapGuide mapagent API
Everything the MapGuide viewer does goes through mapagent: listing and writing resources, opening the map, drawing the image, serving tiles, querying features. Octo turns this into scripts with curl and Python, checks every response by its content and not by the 200 code, and rehearses every change in a session before Library://. What is public, what goes to production and when the server changes stay with the administrator and the technical lead.
Six possible deliverables, drawn from the assessment. All of them start with a read-only account, record the version of every operation used and go to review by the server administrator.
CREATESESSION, GETSITEVERSION, TESTCONNECTION on every FeatureSource and a GETMAPIMAGE checked by its PNG signature: mapagent can return 200 with an error page.
ENUMERATERESOURCES in clean JSON, XML for every map and layer, dependencies with ENUMERATERESOURCEREFERENCES, orphans and layers pointing to sources that don't connect.
The same views and tiles (GETMAPIMAGE 3.0.0, GETTILEIMAGE 1.2.0) before and after an upgrade, compared by hash and by fraction of pixels.
GEO.BUFFER, QUERYMAPFEATURES and GEO.SPATIALPREDICATE with written criteria: the same list of features every time the query runs.
Backup of the XML, SETRESOURCE in a session, a side-by-side proof render and, only with approval, a write to Library:// checked by hash.
What Anonymous can read, WMS and WFS switched on, empty query limits and the AnonymousDeny... lists in the 4.0 webconfig.ini.
The same Octo cycle, applied to a MapGuide server. Each arm has a narrow role; the people decide what is public, approve publishing and change the server.
Site version, supported operations and versions, Library:// resources, FDO sources, WMS and WFS services switched on and the mapagent address.
Schemas and classes via DESCRIBEFEATURESCHEMA, spatial context, the CS of each map and which layers carry personal data.
Read-only account to start; password via POST and kept out of the script; what Anonymous can read; AnonymousDeny... lists and DisableAuthoring in webconfig.ini.
Direct mapagent, mapguide-rest or the Web API; the version of each operation; dry run in Session: before any write to Library://.
curl and Python with a log, dry-run mode by default, explicit failure when the response isn't what was expected and the source of every syntax noted.
A PNG that really is a PNG, XML that validates, JSON with the expected count, published hash equal to the approved one. A 200 code is not a check.
The write to production Library:// happens after approval, with a backup and a way back ready.
Operations and versions used, accepted thresholds, the criteria of each query, who approved each publish. What holds on one server does not automatically hold for another.
Octo works with read access and in a support role. It does not decide what is public, publish to production without approval, use an administrator account for routine work or change anyone's server without an order.
The criteria Octo uses to choose, with the versions read from the 4.0 branch code.
| Task | Operation | Note |
|---|---|---|
| Find out if the server is alive | GETSITEVERSION, GETSITESTATUS | Check the XML, not just the HTTP code |
| List resources as JSON | ENUMERATERESOURCES with FORMAT=application/json | CLEAN=1 only with VERSION=4.0.0 |
| Read and write a resource's XML | GETRESOURCECONTENT, SETRESOURCE | Write via multipart POST; DisableAuthoring blocks it |
| Who depends on this resource | ENUMERATERESOURCEREFERENCES | Before moving or deleting |
| Test a data source | TESTCONNECTION | Provider details on the FDO sources page |
| Read features as GeoJSON | SELECTFEATURES with CLEAN=1 | TRANSFORMTO and PRECISION in 4.0 |
| Open the map and get layers and scales | CREATERUNTIMEMAP | 2.6.0, 3.0.0 or 4.0.0; REQUESTEDFEATURES=7 requests everything |
| Draw a view | GETMAPIMAGE | 1.0.0 or 3.0.0; SETVIEWCENTERX/Y, SETVIEWSCALE |
| Fetch a tile | GETTILEIMAGE | 1.2.0 requires MAPDEFINITION and SCALEINDEX |
| Select features on the map | QUERYMAPFEATURES | 1.0.0, 2.6.0 or 4.0.0; capped by GlobalMaxMapFeatureQueryLimit |
| Server-side buffers and predicates | GEO.BUFFER, GEO.SPATIALPREDICATE | 4.0.0 only; WKT or GeoJSON output |
| Transform coordinates | CS.TRANSFORMCOORDINATES | 4.0.0 only; comma-separated "x y" pairs |
| Write features | Web API or mapguide-rest | mapagent does not expose UpdateFeatures |
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 has and what it exposes, without writing anything.
Reference captures, comparison on every change and spatial queries with written criteria.
Every resource change goes through a session, a proof and approval before Library://.
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.
VERSION is 4.0.0 or higher; the test forms still ship with 1.0.0.Source: HttpRequestResponseHandler.cpp, SVN 4.0 branchGETMAPIMAGE 1.0.0 and 3.0.0; CREATERUNTIMEMAP 2.6.0, 3.0.0 and 4.0.0; QUERYMAPFEATURES 1.0.0, 2.6.0 and 4.0.0; GETTILEIMAGE 1.0.0 and 1.2.0; GEO.* and CS.TRANSFORMCOORDINATES 4.0.0 only.Source: HTTP handler code, 4.0 branchwebconfig.ini has AnonymousDenyGetResourceContent, ...Data and ...Header; the Git mirror, frozen in 2023, does not.Source: webconfig.ini, SVN 4.0 branchOcto 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 systemOfficial 4.0 branch source code (OSGeo SVN, revision 10236), the project's mailing lists and the mapguide-rest extension, consulted on Oct 31, 2026.
The assessment starts with a read-only account: repository inventory, a smoke test and a list of what the server exposes, without writing anything. You get the server's state, the questions only your team can answer and a way to test every change, and you decide with that in hand.