feat(server): remove the embedded viewer - #6
Open
NivGreenstein wants to merge 1 commit into
Open
Conversation
Coverage Report for CI Build 0Coverage increased (+0.06%) to 47.744%Details
Uncovered Changes
Coverage Regressions1 previously-covered line in 1 file lost coverage.
Coverage Stats
💛 - Coveralls |
Shigola serves tiles, not a map. The viewer route, the embedded UI assets, the build tags that excluded them, and the viewer half of the observability interface all go. This is sequenced first among the surface removals because the viewer consumes both the capabilities endpoints and the native /maps/... routes. Removing those first would have left it broken in passing rather than removed on purpose. What goes with it: - The /viewer routes, and setupViewer along with the noViewer build tag that chose between the two implementations. There is no tag left to set: passing -tags noViewer now builds exactly the same binary. - ui/, the Vue application and its go:embed wrapper, and the go:generate directive that shelled out to npm to build it. The only go:generate left in the tree is the build-tag one, which needs nothing but Go. - The build_ui job in the release workflow, the ui artifact it published, the seven jobs that waited on it, and the `ui` input on shigola-setup-env that downloaded it. The ticket named only the test job's step; leaving the release half would have had every build job waiting on an artifact no job produces. - ViewerObserver, InstrumentViewerHandler, and the shigola_viewer metric family. Dropping that `ui` input emptied five `with:` blocks. A bare `with:` parses as null, which GitHub's workflow schema rejects outright, and on_pr_push.yml does not exercise the release workflow -- so PR CI would have stayed green and the whole release would have failed to parse the next time it ran. Those `with:` lines are removed rather than left empty. The docs simply stop mentioning a viewer, rather than announcing that one was removed. There is no stable release to upgrade from, so there is nobody for a migration note to address; documenting an absence would only raise a question the reader did not have. The generated build-tag files are regenerated rather than hand-edited, which is also why this commit adds no_gcs_cache and no_hana_provider files: those tags exist in the tree and the committed generated set had gone stale without them. Pruning that back by hand would be the hand-editing the generated files warn against. `shigola version` now reports them, so README's build-tag list -- which had never mentioned either -- is corrected to match. ADR-0003 recorded the landing page displacing the viewer to /viewer. There is no ADR register in this repository -- ADR-0001 through ADR-0009 are referenced only from code comments -- so what is amended here is the four comments that cite it. Those comments keep the history, because the reason "/" is unconditional now is not self-evident from the code. MAPCO-11482 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
NivGreenstein
force-pushed
the
feat/remove-viewer
branch
from
August 25, 2026 19:10
52c25b3 to
ffe9d95
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes MAPCO-11482. Docs half: MapColonies/shigola-docs#2
Shigola serves tiles, not a map. The viewer route, the embedded UI, the build tags that excluded it,
and the viewer half of the observability interface all go.
Sequenced first among the surface removals, as the ticket asked: the viewer consumed both the
capabilities endpoints and the native
/maps/...routes, so removing those first would have left itbroken in passing rather than removed on purpose.
What went
setupViewerand both its build-tagged implementationsui/— the Vue app, itsgo:embedwrapper, and thego:generatethat shelled out to npmnoViewer, and the generated files registering itViewerObserver,InstrumentViewerHandler, and both implementersshigola_viewer_*familybuild_uijob, itsuiartifact, and theuiinput onshigola-setup-envThe only
go:generateleft in the tree is the build-tag one, which needs nothing but Go. Nothingin the build needs node any more.
Three things reviewers should look at
1. A near-miss that PR CI could not have caught. Dropping the
ui: trueinput emptied fivewith:blocks inon_release_publish.yml. A barewith:parses as YAMLnull, which GitHub'sworkflow schema rejects — invalidating the entire release workflow.
on_pr_push.ymlneverexercises that file, so CI would have stayed green and the next release would simply have failed to
parse. Those
with:lines are removed rather than left empty; both workflows and the compositeaction are verified to parse.
2. The CI scope is deliberately wider than the ticket. The AC names only "the CI step … in the
test job". But the release workflow had a whole
build_uijob feeding seven downstream jobs througha
uiartifact. Removing only the test step would have left every release build waiting on anartifact no job produces, so both halves are gone.
3. The docs do not announce the removal. They simply stop mentioning a viewer. There is no
stable release to upgrade from, so there is nobody a migration note would address, and documenting
an absence only raises a question the reader did not arrive with. This deliberately does not satisfy
the ticket's "noted as a breaking dashboard change" wording — see the note on the ticket.
4. Four generated files here are not about the viewer. AC 4 requires the build-tag files be
"regenerated rather than hand-edited". Regenerating revealed that the committed set was stale:
noGCSCacheandnoHanaProviderexist in the tree (atlas/cache_gcs.go,atlas/provider_hana.go)but had never been registered. So
no_gcs_cache/no_hana_providerpairs appear here. Pruning themback by hand would be precisely the hand-editing the AC and
CLAUDE.mdforbid.shigola versionnowreports them, and README's build-tag list — which had never documented either — is corrected to match.
On ADR-0003
AC 7 asks that ADR-0003, which placed the viewer at its own path, be amended. There is no ADR
register.
ADR-0001throughADR-0009are referenced only from code comments; nothing definesthem in either repo, and a Confluence search found nothing. What is amended here is therefore the
four in-code comments citing ADR-0003. If the register lives somewhere I could not see, it still
needs the real amendment — please say where.
Verification
server/ogc_mount_test.gopreviously asserted the/viewer→
/viewer/redirect; it now asserts 404 on/viewer,/viewer/and/viewer/index.htmlthrough a real
server.NewRouter. All three failed with 301 before the removal.cmd/shigolaandcmd/shigola_lambdabuild;cmd/shigolaalso builds withCGO_ENABLED=0.go build -tags noViewerstill succeeds — the tag is simply inert now.gofmt -sclean, all four workflow/action YAML files parse.server/server.goandserver/ogc/**),independently checking the OGC surface still conforms.
Pre-existing failures, not from this change
cmd/shigola/cmd/cacheTestValidateTileInGrid/a_zoom_beyond_the_scheme's_matricesandserver/ogcTestTile/a_matrix_the_scheme_does_not_havefail onmastertoday — confirmed by stashing thisbranch and re-running. Separately,
cache/fileTestExpirationfailed once under full-suite loadand passes 3/3 in isolation on both
masterand this branch: a timing flake. All three want theirown ticket.
Deliberately left
CHANGELOG.md's viewer entries are upstream history and are untouched.LICENSE.md's attributionkeeps every word except naming the viewer among what this codebase contains — it no longer does.
🤖 Generated with Claude Code