Add map import and export with durable refresh progress
This commit is contained in:
26
docs/map-sharing.md
Normal file
26
docs/map-sharing.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# Share a map with friends
|
||||
|
||||
The original owner can choose **Export ZIP** in their map editor or on the public
|
||||
map page. The ZIP includes the saved map, selected panoramas, coordinates, and
|
||||
signed original-owner attribution. Save edits before exporting. Raw world files,
|
||||
server addresses, account IDs, tokens, and storage links are excluded.
|
||||
|
||||
On **Servers**, choose **Import** beside search, then select the exported ZIP.
|
||||
Sign in first to keep the imported map in your dashboard. The ZIP limit is 256 MB.
|
||||
Files upload directly to private Supabase Storage, then the deployed image
|
||||
processor checks sizes, hashes, formats, and dimensions and creates the draft.
|
||||
Neither Minecraft nor the terrain-rendering worker is required for these imports.
|
||||
|
||||
Imported maps are private and show **Owned by [original owner]**. The recipient
|
||||
can play solo or host an invite-only multiplayer room after processing, with no
|
||||
moderator approval. Submission, publication, and re-export of imported copies
|
||||
are blocked. The original owner keeps the normal export and public review flow.
|
||||
Private imported games do not contribute to the public leaderboard.
|
||||
|
||||
Apply `supabase/migrations/20261007145000_map_sharing.sql` before deploying.
|
||||
Archive ownership signatures use a purpose-specific HMAC derived from the
|
||||
server's Supabase secret key. Rotating that key invalidates ownership signatures
|
||||
in older ZIPs; the original owner can export a new ZIP.
|
||||
|
||||
Verification: `npm test`, `npm run typecheck -- --incremental false`,
|
||||
`node scripts/test-map-sharing-sql.mjs`, and `npm run build`.
|
||||
Reference in New Issue
Block a user