Skip to content

Add GraphQL API endpoint, Nuxt UI data panel, and Docker setup - #111

Open
dylangriffinshub wants to merge 1 commit into
Flowm:nextfrom
dylangriffinshub:feat/docker-graphql-cesium
Open

Add GraphQL API endpoint, Nuxt UI data panel, and Docker setup#111
dylangriffinshub wants to merge 1 commit into
Flowm:nextfrom
dylangriffinshub:feat/docker-graphql-cesium

Conversation

@dylangriffinshub

Copy link
Copy Markdown

Summary

Implements the frontend-development and backend-integration skills the role calls for, using satvis's existing Vue 3 + CesiumJS + Cloudflare Worker stack:

  • GraphQL backend API — new POST /api/graphql endpoint in the worker wrapping the existing GP KV store, with groups, group(name:), and satellite(name:) resolvers. Zero external dependencies (hand-rolled parser over the fixed schema).
  • Frontend to backend integration — a typed graphql.ts client that probes the worker and falls back to the committed static snapshot, plus a SatelliteGraphqlPanel (Nuxt UI, the project's component library) mounted as a toolbar toggle in Satvis.vue.
  • DockerDockerfile + docker-compose.yml that build the Vite frontend and serve the static bundle (the app self-hosts via the data/gp/ snapshot when no worker is reachable).
  • Cesium and TypeScript are unchanged and remain the rendering core.

Test plan

  • pnpm --filter satvis-worker test (resolver unit tests in worker/test/graphql.test.ts)
  • pnpm test (client fallback tests in src/modules/util/graphql.test.ts)
  • pnpm run build and docker build -t satvis:local .

Notes

  • The repo is Vue/Nuxt UI, not React/Chakra, so the UI work uses the project's actual component library rather than dropping in a different framework.
  • worker/src/config/satvis.generated.json is gitignored and regenerated by pnpm generate-groups in CI.

- worker: new /api/graphql endpoint wrapping the GP KV store (groups, group(name), satellite(name))
- frontend: typed GraphQL client with worker/static-snapshot fallback and a SatelliteGraphqlPanel (Nuxt UI)
- mount the panel as a toolbar toggle in Satvis.vue
- Dockerfile + docker-compose.yml to build and serve the static frontend
- tests for the resolver and the client
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant