github rommapp/romm 4.8.0-alpha.1

pre-release3 hours ago

Note

API Changes

⚠️ Most API endpoints that accept form input(s) are now fully typed and allow for partial updates. Field names were (mostly) unchanged, so existing API calls should continue to work as expected. Affect endpoints:

  • PUT /api/roms: Update Rom
  • POST /api/collections: Create Collection
  • PUT /api/collections: Update Collection
  • POST /api/collections/smart: Create SmartCollection
  • PUT /api/collections/smart: Update SmartCollection
  • POST /api/saves: Upload Save
  • PUT /api/saves: Update Save
  • POST /api/states: Upload State
  • PUT /api/states: Update State
  • POST /api/screenshots: Upload Screenshot

Client tokens expose a new batch of endpoints:

  • POST /api/client-tokens: Create client token
  • GET /api/client-tokens: List client tokens
  • DELETE /api/client-tokens/{token_id}: Revoke client token
  • POST /api/client-tokens/regenerate: Regenerate client token secret
  • POST /api/client-tokens/pair: Pair client token via QR code
  • GET /api/client-tokens/pair/{code}/status: Check QR pairing status
  • POST /api/client-tokens/exchange: Exchange pairing code for client token
  • GET /api/client-tokens/all: Get all client tokens (admin only)
  • DELETE /api/client-tokens/{token_id}/admin: Revoke any client token (admin only)

⚠️ RomFile endponts have been moved:

  • GET /api/roms/files/{rom_id} -> POST /api/roms/{rom_id}/files
  • GET /api/roms/files/{rom_id}/content -> /{id}/files/content/{file_name}

Other changes:

  • GET /api/stats endpoint now includes additional metadata coverage and region breakdowns
    • Added METADATA_COVERAGE and REGION_BREAKDOWN fields to StatsReturn
  • Added path_video field and ra_hash fields to DetailedRomSchema and SimpleRomSchema
  • Added ra_hash field to RomFileSchema
  • Added firmware_count field to PlatformSchema
  • Added highest_award_kind field to RAUserGameProgression
  • Added refresh_token and refresh_expires to TokenResponse
  • UPLOAD_TIMEOUT has been removed from the /api/heartbeat response

Note

Environment Variables

UPLOAD_TIMEOUT has been removed in favour of chunked uploads
OAUTH_ACCESS_TOKEN_EXPIRE_SECONDS: Access token lifetime (in seconds, default 30 minutes)
OAUTH_REFRESH_TOKEN_EXPIRE_SECONDS: Refresh token lifetime (in seconds, default 7 days)
INVITE_TOKEN_EXPIRY_SECONDS: Invite token lifetime (in seconds, default 10 minutes)
OIDC_SERVER_METADATA_URL: URL to the OIDC provider metadata endpoint
OIDC_RP_INITIATED_LOGOUT: Enable RP-initiated logout flow (default false)
OIDC_END_SESSION_ENDPOINT: OIDC end-session endpoint override URL

Highlights

Client API tokens

API tokens are a safer way for apps and devices to connect without sharing user credentials. A new QR-based pairing flow makes setup quick, with support for regeneration and revocation when needed. #3114

Chunked uploads

Goodbye failed uploads and incessant timeouts! ROMs will now upload in smaller chunks, allowing for more reliable transfers even on spotty connections. #3076

Local LaunchBox metadata import

Have a local LaunchBox installation packed with games? You can now import metadata directly from it, including cover art, screenshots and video previews. #2922

Minor changes

  • Add config option to use local video paths in gamelist.xml export by @JamieeBond in #3082
  • Add additional cover styles for boxart to prevent cropping by @Drarox in #3060
  • Fetch games on search view mount and reset search state on input clear by @zurdi15 in #3080
  • Add video_normalized media type option for ScreenScraper scans by @gantoine in #3088
  • Scrape and store age rating data from ScreenScraper.fr by @gantoine in #3089
  • Make invite token expiration configurable by @gantoine in #3094
  • Click to zoom game cover image by @gantoine in #3093
  • Add more platforms to cover styles by @Drarox in #3098
  • Show filtered ROM count in the gallery AppBar and filter drawer by @gantoine in #3097
  • Show firmware count in scan results to improve BIOS detection discoverability by @gantoine in #3111
  • Per-platform metadata coverage and region breakdown to server stats by @cciollaro in #3110
  • Use PICO-8 built-in cover art from .p8.png cartridge files by @gantoine in #3119
  • Auto-update game status from RetroAchievements award kind during progress sync by @gantoine in #3118

Fixes

  • Fix platform aspect ratio not applying in gallery view by @gantoine in #3083
  • Fix metadata IDs not persisting when handler is disabled or game not found by @gantoine in #3085
  • Hack for natural sorting of ROMs by @gantoine in #3086
  • Always sub dash with colon for launchbox matching by @gantoine in #3090
  • Fix 500 error when loading platforms with ROMs whose filenames start with region tags by @gantoine in #3091
  • Fix M3U generation to exclude raw .bin tracks when .cue files are present by @gantoine in #3100
  • Filesystem watcher and scheduled scan skip when no metadata sources configured by @gantoine in #3106
  • Replace deep watch with computed to reduce reactivity overhead by @cciollaro in #3104
  • Add missing platforms to playable game filter by @Bergbok in #3121
  • Default to querying all roms by @camhorn in #3122
  • Remove cover image card bevel by @gantoine in #3131

Other changes

New Contributors

Full Changelog: 4.7.0...4.8.0-alpha.1

Don't miss a new romm release

NewReleases is sending notifications on new releases.