Previously, the prefix was computed using the org/world (in SAAS) or the instance part of public URLs.
Neither was guaranteeing the Jitsi Room would be unique accross rooms.
The new system computes a hash of the room URL and prepends it to the jitsi room name.
BREAKING CHANGE: this means the URL of the Jitsi room will change for all maps. Users having bookmarked the Jitsi room (for instance in the Jitsi mobile app) will need to update their bookmarks.
* Zod EVERYWHERE
* Add no-unused-vars rule to eslint in front
* Add no-unused-vars rule to eslint in pusher
* Add no-unused-vars rule to eslint in back
* Remove unused PlayerTexture guards
* Fix data providing on room connection
Co-authored-by: Alexis Faizeau <a.faizeau@workadventu.re>
* Wrap websockets with HyperExpress
* Add endpoints on pusher to resolve wokas
* getting textures urls from pusher
* Adding OpenAPI documentation for the pusher.
The pusher now exposes a "/openapi" endpoint and a "/swagger-ui/" endpoint.
* revert FRONT_URL
* playerTextures metadata is being loaded via Phaser.Loader
* fetch textures every time character or customize scene is open
* Heavy changes: refactoring the pusher to always send the textures (and the front to accept them)
* Sending character layer details to admin
* Cleaning commented code
* Fixing regex
* Fix woka endpoints on pusher
* Change error wording on pusher
* Working on integration of the woka-list with the new admin endpoint.
* Switching from "name" to "id" in texture object + using zod for woka/list validation
* Add position on default woka data
* Remove async on pusher option method
* Fix woka list url
* add options for /register
* Fxiing loading the Woka list
* Actually returning something in logout-callback
* Copying messages to back too
* remove customize button if no body parts are available (#1952)
* remove customize button if no body parts are available
* remove unused position field from PlayerTexturesCollection interface
* removed unused label field
* fix LocalUser test
* little PlayerTextures class refactor
* Fixing linting
* Fixing missing Openapi packages in prod
* Fixing back build
Co-authored-by: Hanusiak Piotr <piotr@ltmp.co>
Co-authored-by: David Négrier <d.negrier@thecodingmachine.com>
* Add returns on pusher endpoints
Co-authored-by: Alexis Faizeau <a.faizeau@workadventu.re>
Co-authored-by: Hanusiak Piotr <piotr@ltmp.co>
Co-authored-by: Piotr Hanusiak <wacneg@gmail.com>
Now, if the first pusher request fails, a waiting message will be displayed and the application will reconnect when the pusher comes back alive or the network connection is established again.
The notion of public/private repositories (with /_/ and /@/ URLs) is specific to the SAAS version of WorkAdventure.
It would be better to avoid leaking the organization/world/room structure of the private SAAS URLs inside the WorkAdventure Github project.
Rather than sending http://admin_host/api/map?organizationSlug=...&worldSlug=...&roomSlug=...., we are now sending /api/map&playUri=...
where playUri is the full URL of the current game.
This allows the backend to act as a complete router.
The front (and the pusher) will be able to completely ignore the specifics of URL building (with /@/ and /_/ URLs, etc...)
Those details will live only in the admin server, which is way cleaner (and way more powerful).
* Public texture
- Front => Get texture when user connected on public method
- Front => Anonymous login will be make every connexion to get map details
- Pusher => `/anonymLogin` permit to get map details and public texture load in customize scene
* Improve texture local user
- Permit to keep previous texture get with 'register' link
* Texture public loading
- Texture will be load with Room class
- Fix issue on lazzy loading atttempt
* Remove async await useless
API_URL is still accepted for BC compatibility of the self-hosted deployments.
This will allow deploying on a single domain, using a reverse proxy that acts on the path.
This however means that the config needs to be changed for all WorkAdventure deployments.
In "alone" mode (or single-player mode), WorkAdventure does not connect to the server at all.
In order to enter the "alone" mode, you need to add "?alone=true" to the URL.
"alone" mode can be useful for tutorials (First Time User Experience) where you want to explain how WorkAdventure works without being disturbed by other users.