Commit Graph

16 Commits

Author SHA1 Message Date
50fa9a5a22 Make shared asset links open directly on map location.
CI / test (push) Successful in 3s
Copy Share Link now generates a demo URL with asset coordinates so recipients can open the map and immediately see the shared object placement.

Made-with: Cursor
2026-03-02 22:16:01 +00:00
111ed726d8 Use stable demotiles vector source for OSM Liberty demo style.
CI / test (push) Successful in 3s
Switch openmaptiles source URL to MapLibre demo TileJSON to avoid malformed vector tile parsing errors ("Unimplemented type: 4") in the web demo.

Made-with: Cursor
2026-03-02 22:11:00 +00:00
2d1d93c455 Add local MapLibre glyph fonts under web and use them in OSM Liberty style.
CI / test (push) Successful in 4s
Commit bundled PBF font ranges in web/fonts and point the style glyph template to local files to avoid external glyph 404s.

Made-with: Cursor
2026-03-02 22:08:01 +00:00
26de435ff1 Fix MapLibre glyph source to OpenMapTiles fonts.
CI / test (push) Successful in 4s
Switch OSM Liberty glyph URL template to fonts.openmaptiles.org so Roboto glyph ranges resolve without 404 errors in the demo.

Made-with: Cursor
2026-03-02 22:06:55 +00:00
cd63ea142f Fix OSM Liberty sprite and glyph paths for /web hosting.
CI / test (push) Successful in 5s
Use relative sprite URLs and a working glyph endpoint so MapLibre no longer requests missing /web/styles/* or /web/assets/fonts/* resources.

Made-with: Cursor
2026-03-02 22:05:05 +00:00
0c76e867ae Allow anonymous public asset downloads and adopt OSM Liberty style for MapLibre demo.
CI / test (push) Successful in 4s
Public asset links now work without bearer auth while private assets remain protected, and the demo ships with the local osm-liberty-gl-style assets for consistent tile rendering.

Made-with: Cursor
2026-03-02 21:56:31 +00:00
a666f1233d Refresh docs and client for backend-routed asset uploads.
CI / test (push) Successful in 5s
This updates developer docs and web demos to use backend upload endpoints, adds a client upload helper, and aligns integration tests with the no-direct-MinIO URL flow.

Made-with: Cursor
2026-03-02 21:51:47 +00:00
e981a334ea Add MapLibre demo and route uploads through backend.
CI / test (push) Successful in 5s
This introduces a MapLibre GL + Three.js web demo for object placement and sharing, and changes asset upload flow to use backend upload endpoints so clients no longer receive direct MinIO URLs.

Made-with: Cursor
2026-03-02 21:48:08 +00:00
efe5907adc Update docs and defaults for tenerife.baby domain.
CI / test (push) Successful in 3s
This replaces old momswap.produktor.duckdns.org references with tenerife.baby and refreshes the TypeScript integration guide to reflect the current asset upload, sharing, and relative-link flow.

Made-with: Cursor
2026-03-02 21:31:21 +00:00
1292f204a4 Extend TypeScript client and add Leaflet asset demo.
CI / test (pull_request) Successful in 3s
This adds typed asset APIs to the geo client, covers the 3D/image upload-share flow in integration tests, and introduces a simple Leaflet web demo that places objects on map features and manages sharing visibility via backend links.

Made-with: Cursor
2026-03-02 21:21:52 +00:00
8a3cd2c27e Import pk from camera, QR visibility toggles, docs
CI / test (push) Successful in 5s
- Add Import pk from camera: scan QR → restore pb → auto login → refresh
- Add scanner.js (jsQR) for camera QR decode
- QR visibility: pk shown by default, pb hidden by default (toggles)
- Update docs/frontend-development.md with scanner, Import pk, QR behavior

Made-with: Cursor
2026-03-01 14:05:43 +00:00
ef3957b618 Demo app, collections/features CRUD, QR codes, docs
CI / test (push) Successful in 4s
Demo app (web/):
- Collections: select, rename, remove (x button per row), delete
- Features: add point (lon/lat validation), remove, list in selected collection
- QR codes for pk (private) and pb (public) keys
- Restore public key from private key
- 409 Conflict handled for already-registered login
- Title: Momswap Geo Backend Use-Cases Test

Backend:
- PATCH /v1/collections/{id} for rename
- DELETE /v1/collections/{id}
- Clearer lon/lat validation errors (-180..180, -90..90)

Client:
- updateCollection, deleteCollection, derivePublicKey

Docs:
- docs/frontend-development.md (demo app, local dev)
- README links to all docs

Made-with: Cursor
2026-03-01 13:41:54 +00:00
18328706bd Server keys in etc/, bind in docker compose
CI / test (push) Successful in 5s
- bin/gen-server-keys.sh: generate Ed25519 keypair to etc/server-service.{pub,key,env}
- main.go: read keys from file (ADMIN_PUBLIC_KEY_FILE) when env empty
- docker-compose: env_file etc/server-service.env, mount etc/
- bin/up.sh: auto-run gen-server-keys if etc/server-service.env missing
- ErrRegistrationNotConfigured for clearer 503 when keys not set
- etc/README.md, etc/.gitignore
- bin/gen-admin-key.sh for one-off key gen
- .env.example

Made-with: Cursor
2026-03-01 13:02:40 +00:00
a5a97a0ad9 Add register-by-signature, web fixes, bin scripts, docs
CI / test (push) Successful in 5s
- Register by signing service key: GET /v1/service-key, POST /v1/auth/register-by-signature
- Login auto-attempts register first for new users
- Web: default API URL momswap.produktor.duckdns.org, /libs/ static handler
- Docker: webbuild stage for geo-api-client, copy web+libs to runtime
- Bin scripts: test.sh, run.sh, up.sh, down.sh
- docs/ed25519-security-use-cases.md: use cases, message formats, examples
- SERVICE_PUBLIC_KEY env (defaults to ADMIN_PUBLIC_KEY)

Made-with: Cursor
2026-03-01 12:59:02 +00:00
c2aa716ed8 Switch local API port to 8122 and keep DB internal.
CI / test (push) Successful in 5s
Update runtime defaults, compose mappings, frontend defaults, and developer docs to use port 8122 while keeping PostGIS reachable only via the internal compose network.

Made-with: Cursor
2026-03-01 12:12:44 +00:00
6e2becb06a Implement geo backend, TS client, frontend, and CI tests.
Add a Go HTTP API with Ed25519 auth and invitation onboarding, user-scoped GeoJSON Point management, a Bun-tested @noble/ed25519 TypeScript client, static Vue/Vuetify frontend integration, and a Gitea CI workflow running both Go and Bun test suites.

Made-with: Cursor
2026-03-01 11:41:21 +00:00