Library:// inventory
Lists every resource with ENUMERATERESOURCES and DEPTH=-1, downloads each XML with GETRESOURCECONTENT and records type, schema version, owner and date. Read-only.
Octo for the MapGuide repository
In MapGuide Open Source 4.0, data sources, layers, maps and viewers are XML documents in the Library:// repository, read and written by 24 mapagent API operations. Octo inventories the repository, finds broken references and old schemas, generates layers in batch from a spreadsheet, validates against the XSDs before sending and prepares the package with a backup first. Publishing to production, credentials and published data stay with the administrator and the technical lead.
Six possible deliverables, drawn from the assessment. All of them start with a read and a local copy, all validate against the server version's schemas, and all go to review by whoever administers the server.
Lists every resource with ENUMERATERESOURCES and DEPTH=-1, downloads each XML with GETRESOURCECONTENT and records type, schema version, owner and date. Read-only.
Builds layout → map → layer → source → symbol and cross-checks with ENUMERATERESOURCEREFERENCES. Points out broken references, resources nothing points to and schemas below the newest.
A spreadsheet with source, class, filter, label, scale and colors becomes standardized 4.0.0 LayerDefinition resources and a MapDefinition with the groups, with no clicks in the editor.
Well-formedness, the rule the server applies (root matches type, schema name) and full validation with xmllint --schema, because the server checks very little and the version label is a "TODO" in the code.
Builds the .mgp (Library/ tree + manifest), first downloads whatever will be overwritten and checks afterward through canonical XML and TESTCONNECTION.
Replaces the password stored in the sources with %MG_USERNAME% and %MG_PASSWORD%; the credential goes separately, in MG_USER_CREDENTIALS, written by whoever holds the password.
The same Octo cycle, applied to the resource repository. Each arm has a narrow role; the people publish to production, hold the credentials and are accountable for the data.
Server version, complete Library listing, schema version of every resource and the dependency graph.
FDO provider, schema and class of each source, substitution tags and attached resource data.
Read-only user for the inventory; passwords out of the XML and the command line; folders with personal data flagged (LGPD).
SETRESOURCE resource by resource or an atomic package; template-based generation; MaestroAPI when the edit is structural.
Generators and validators with a log and the source of every syntax noted in the file.
Local XSD, canonical XML matching the package, TESTCONNECTION and the map rendered in staging. "The server accepted it" is not a check.
Delivers the package and the rollback copy. Applying it to production is done with a person's approval.
Inventory, open items, version of each schema, package applied, who approved it and how to roll back.
Octo works with read access in production; it writes only to staging, in a support role. It does not decide what goes to production, hold database credentials, delete resources on its own or answer for published data.
The criteria Octo uses to choose, with the code and reference for the installed version.
| Task | Path | Note |
|---|---|---|
| List the whole Library | ENUMERATERESOURCES, DEPTH=-1 | Library repository only |
| Download a resource's XML | GETRESOURCECONTENT | Save before any change |
| Find who uses a source | ENUMERATERESOURCEREFERENCES | External applications can use it without showing up |
| Generate layers in batch | XML template + CSV | LayerDefinition 4.0.0, the only new resource version in 4.0 |
| Validate before sending | xmllint --noout --schema | The server checks the root and schema name |
| Write a resource | SETRESOURCE, multipart POST | CONTENT and HEADER as files |
| Move many resources | .mgp + APPLYRESOURCEPACKAGE | Atomic; Library only; does not keep the previous version |
| Take the password out of the XML | %MG_USERNAME%/%MG_PASSWORD% + MG_USER_CREDENTIALS | Credential written on each server |
| Test the written source | TESTCONNECTION | Feature service |
| Export a package from the server | MgServerAdmin::MakePackage | Writes to PackagesPath |
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 is in the repository and what is broken, without writing anything.
New layers come from a spreadsheet and a template, validated against the XSD, in a reviewable package.
Staging and production receive the same package, with a backup first, approval and a check.
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.
3
points with a published source, each with its reference shown alongside.
LayerDefinition-4.0.0 is a resource schema, with the optional IncludeBoundsForSelectedFeatures element (RFC 178, r9644, Feb 5, 2020).Source: svn.osgeo.org, MgDev/Common/SchemaOcto 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 systemCode from the official MapGuide SVN, OSGeo mailing lists and the MapGuide Maestro and mapguide-rest repositories used in the assessment, consulted on Oct 31, 2026.
The assessment starts with a Library inventory and a dependency graph, read-only. You get the list of what is broken, what is outdated and the questions only your team can answer, and you decide with it in hand.