21 Commits

Author SHA1 Message Date
e1107256e8 Vendor frontend CDN dependencies and serve them locally.
CI / test (push) Successful in 3s
This switches demo pages and modules to local web/vendor assets, fixes Three GLTFLoader local import resolution, and documents the runtime-data/agent commit workflow updates.

Made-with: Cursor
2026-03-02 22:43:27 +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
96b5e8f40f Improve TypeScript integration doc with concrete 3D upload flow.
CI / test (push) Successful in 3s
This updates the example to compute SHA-256 from a selected GLB/GLTF file, create/link asset metadata, upload with signed URL, and use share links plus visibility toggling.

Made-with: Cursor
2026-03-02 21:32:21 +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
f6f46f6db1 Add asset metadata, sharing, and MinIO-backed signed links.
CI / test (pull_request) Successful in 4s
This introduces deduplicated per-user image/3D asset records linked into feature properties, adds visibility-controlled download routing, and wires local S3-compatible storage with automatic bucket bootstrap in Docker Compose.

Made-with: Cursor
2026-03-02 21:03:08 +00:00
184c5cb59f Describe Key methods in typescript-frontend-integration.md
CI / test (push) Successful in 5s
Add descriptions and group by category: Key storage, Auth, Collections, Features

Made-with: Cursor
2026-03-01 14:29:49 +00:00
89c48e5fb4 Link GeoApiClient methods in docs to source code
CI / test (push) Successful in 5s
Add links from typescript-frontend-integration.md to GeoApiClient.ts
with line anchors for each constructor and method.

Made-with: Cursor
2026-03-01 14:18:23 +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
a295e36bac Add bun integration tests for docs flow, update integration guide
CI / test (push) Successful in 4s
- Add test/integration.test.ts: getServicePublicKey, full flow (register, login, createCollection, createPointFeature, listFeatures)
- Update docs example: registerBySigningServiceKey then loginWithSignature
- Document integration tests in typescript-frontend-integration.md

Made-with: Cursor
2026-03-01 13:08:09 +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
978e0403eb Add Ed25519 security use-case diagrams for developers.
CI / test (push) Successful in 5s
Document identification, challenge-response authentication, protected feature collection write/read flows, and invitation lineage with Mermaid diagrams, and link the guide from README.

Made-with: Cursor
2026-03-01 12:26:05 +00:00
461c1d0afa Add port 8122 for reverse proxy, fix buildx cache, update docs
CI / test (push) Successful in 7s
- Map host 8122 to api container for reverse proxy at momswap.produktor.duckdns.org
- Remove buildx cache_from/cache_to to allow docker build on default driver
- Document reverse proxy setup in frontend integration guide
- Update README with port mapping notes
- bun.lock: add deps from bun install for geo-api-client

Made-with: Cursor
2026-03-01 12:19:04 +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
a2aae391ad Add PostGIS compose service and update public integration docs.
CI / test (push) Successful in 5s
Wire API services to PostGIS in docker-compose, broaden CORS handling for cross-origin clients, and align developer docs with the production momswap URL.

Made-with: Cursor
2026-03-01 12:08:47 +00:00
f51126419c Improve developer integration docs and Docker dev workflow.
CI / test (push) Successful in 7s
Add TypeScript frontend integration documentation, repository agent guidance files, Go-served frontend routing, and an advanced Docker Compose setup with watch mode plus BuildKit cache configuration.

Made-with: Cursor
2026-03-01 11:57:22 +00:00
ba7cd51a84 Upgrade runtime to Go 1.25 and add container orchestration.
CI / test (push) Failing after 35s
Add a cache-optimized multi-stage Dockerfile with non-root runtime, compose service definitions for local/dev execution, CI Go version alignment, and docs/path cleanup updates.

Made-with: Cursor
2026-03-01 11:44:07 +00:00
5c73295ce5 Add geo app architecture and delivery plan.
Document the backend auth, invitation flow, GeoJSON storage model, and TS client-library integration for frontend key management.

Made-with: Cursor
2026-03-01 11:35:34 +00:00