Skip to content
Octo × Maestro PT Request an assessment

Octo for MapGuide Maestro and automation

One broken reference takes down several layers. Who promotes to production is you.

MapGuide Maestro is at 6.0m13 and already includes what automation needs: MgTileSeeder to seed tiles from the command line on Windows and Linux, the Maestro API on NuGet to read, validate and rewrite resources in batch, and an IronPython console inside the application. Octo inventories the repository, maps what depends on what, repoints layers in a staging folder and checks before any swap. Production, load windows and deletions stay with the server administrator.

A terminal runs MgTileSeeder with a log of failed tiles; Octo, in the center, connects the terminal to a dependency graph of the MapGuide repository, in which a Feature Source feeds layers and maps, and to a tile grid of a fictitious neighborhood with rendered tiles and two that failed $ MgTileSeeder mapguide --map Library://…/Base.MapDefinition --max-parallelism 4 --failed-requests falhas.txt tiles processed rendered · ok failed → mapguide_replay FICTITIOUS NEIGHBORHOOD · ZOOM 16 ok failed FICTITIOUS DATA ENUMERATERESOURCEREFERENCES Lotes_MSSQL.FeatureSource Parcels Tax Blocks Cadastro.Map FS → 3 LAYERS → 1 MAP STAGING Library://Homologacao/ repointed · valid missing column → review prod: admin only dotnet add package OSGeo.MapGuide.MaestroAPI OCTO × MAESTRO 6.0m13 · MGOS 4.0 M-01
MapGuide Maestro6.0m13from Jan 15, 2025, LGPL 2.1, commits through Oct 30, 2026
MapGuide Open Source4.0final release announced Oct 12, 2025
MgCooker removed6.0m11on Aug 3, 2022; MgTileSeeder took its place
Sources12listed at the end of the page
01

What Octo does with Maestro and MapGuide automation.

Six possible deliverables, drawn from the assessment. All of them start by reading, write only to a staging folder and go to review by the server administrator.

Repository inventory

Lists everything in Library:// with ENUMERATERESOURCES, groups it by type (Feature Source, layer, map, layout, tile set) and records the server version with GETSITEVERSION.

Deliverable: spreadsheet by resource, without changing anything

Dependency map

For each Feature Source, who uses it (ENUMERATERESOURCEREFERENCES): layers, maps and layouts. Shows the orphans, which only a person can decide to delete.

Deliverable: graph and list of candidate orphans

Bulk database swap

Repoints Layer Definitions from old Feature Sources to new ones (SQL Server to PostGIS, server to server) based on an approved mapping, with a diff per layer and a copy in staging.

Deliverable: layers repointed outside production

Tile seeding by area

Runs MgTileSeeder by neighborhood or district on the XYZ tile set and over the whole classic tile set (in the current code the mapguide verb accepts an area extent but does not apply it), with low parallelism, an overnight window and retries only for the tiles that failed (mapguide_replay, xyz_replay).

Deliverable: warm cache + failure log

Audit before upgrading

Validates layers and maps in batch with the same validators Maestro uses (ResourceValidatorSet) and returns a CSV of errors and warnings, with an exit code for a scheduler or CI.

Deliverable: report by resource and severity

Scripts inside Maestro

For those who already work in the application: scripts for the IronPython console that use the open connections and ask on screen before every write.

Deliverable: short, commented script with confirmation
02

Eight arms, one checked repository.

The same Octo cycle, applied to maintaining a MapGuide server. Each arm has a narrow role; the people promote to production, set the acceptable load and delete resources.

  1. Discovery

    Maps what already exists

    Version of the server, Maestro and MgTileSeeder on each machine, the Library:// inventory and what depends on what.

  2. Data

    Checks the sources

    Schema of the old and new Feature Sources and the columns used in each layer's filter, label and theme.

  3. Security

    Handles access and data

    Read-only user for the inventory, passwords out of code and URLs, what Anonymous can see and personal data (LGPD) in public layers.

  4. Architecture

    Chooses the path

    mapagent with curl, the Maestro API in .NET or the IronPython console; staging folder; order of the swap and the seeding.

  5. Development

    Writes the script

    Shell, Python and C# with dry run by default, a log, writes only to staging and the source of every syntax noted in the file.

  6. Review

    Checks by the result

    Batch validation, diff per layer, before-and-after images of the same map and tile counts. No error is not the same as checked.

  7. Release

    Delivers to staging

    Only with your OK, it delivers the staging folder and the report. The administrator promotes to production.

  8. Documentation

    Records what holds on your server

    Approved mapping, versions, commands used, agreed windows and who approved each step. What holds on one server does not automatically hold for another.

Octo works with read access and in a support role. It does not write to production, delete resources, choose the load window or replace the server administrator or the technical lead for the map's content.

03

Each task, its own path.

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

TaskPathNote
Find out what is in the repositoryENUMERATERESOURCES with DEPTH=-1Nothing is changed
Who depends on a resourceENUMERATERESOURCEREFERENCES or EnumerateResourceReferencesExternal applications don't show up
Repoint layersXML <ResourceId> and <FeatureName>; or ISubLayerDefinition.ResourceIdFirst in a staging folder
Change a source's connectionIFeatureSource.SetConnectionPropertyCredentials outside the XML when possible
Validate everythingResourceValidatorSet.ValidateSame validators as Maestro
Move without breakingMoveResourceWithReferences, CopyFolderWithReferencesCheck against the inventory afterward
Move to another server.mgp package via Maestro or Site AdministratorPackages of hundreds of MB: through the server
Seed tilesMgTileSeeder mapguide or xyz--failed-requests and *_replay
Published static mapMaestro.MapPublisher.exe publishReview the data and keys that go along
Script with the app openIronPython console, app objectConfirms on screen before writing
04

From inventory to routine maintenance.

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 audit

Octo shows what is in the repository, what depends on what and what validation flags, without touching anything.

  • Spreadsheet of resources by type
  • Dependency map and candidate orphans
  • Validation report by severity
Benefit: know the size of the problem before touching it
2 Next

Batch swaps and seeding

Layers repointed in staging from an approved mapping, and seeding by area with retries for failures.

  • Diff per layer and a copy in staging
  • Overnight seeding with a failure log
  • Report for the administrator to promote
Benefit: the team reviews differences, not every layer
3 Later

Routine maintenance

Validation runs on a scheduler and alerts when a resource breaks; seeding follows the agreed window.

  • Scheduled validation with an exit code
  • Recurring seeding by area
  • Record of every swap and who approved it
Benefit: the broken reference shows up before users complain
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.

ConfirmedMaestro 6.0m13, from Jan 15, 2025
Latest published version, with installer, zip, MgTileSeeder for Linux and Windows and three NuGet packages; the repository has commits through Oct 30, 2026, with no new release.Source: GitHub releases and commits (jumpinjackie/mapguide-maestro)
ConfirmedMgCooker dropped in 6.0m11
On Aug 3, 2022 Maestro became a self-contained .NET 6 application and MgCooker was removed; MgTileSeeder, command-line only, took its place.Source: 6.0m11 release notes and MgTileSeeder guide
ConfirmedMaestro API license and target
LGPL 2.1 on the repository page, LGPL-2.1-only on NuGet and "2.1 or later" in the source header; the API targets .NET Standard 2.0 and is pre-release only.Source: the project's repository, NuGet and source code
ConfirmedMapGuide Open Source 4.0
Final release announced on Oct 12, 2025 on the mapguide-users list, after RC1 on Sep 10, 2025.Source: lists.osgeo.org, mapguide-users
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 Maestro repository, releases, guides and code, the NuGet registry and the OSGeo mailing list, consulted on Oct 31, 2026.

Your MapGuide repository, mapped before anything changes.

The assessment starts with an inventory of the repository and a map of what depends on what, without writing anything. You get the list of what is broken, what can be swapped in batch and the questions only your team can answer, and you decide with it in hand.