Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restore Mojang skins proxy implementation #3

Merged
merged 29 commits into from
Apr 30, 2019
Merged

Conversation

erickskrauch
Copy link
Member

@erickskrauch erickskrauch commented Apr 14, 2019

This is the implementation of #1. For now, I have the next unimplemented or unresolved tasks:

  • Results are not cached
  • Adding of the same username multiple times to the queue is not prevented
  • Have no solution for the case, when username submitted while its already taken in queue iteration
  • No tests
  • Always return nil when submitted username doesn't satisfy Mojang username requirements (3-16 characters, no spaces, A-Z, 0-9, _)
  • Split processing to 2 steps: exchanging usernames to uuids and obtaining textures for uuid and let manually call the second step
  • Split storage to storage to map username -> uuid and uuid -> textures
  • Implement TexturesStorage interface as in-memory storage, that will clean its values older than 1 minute
  • Any network error while querying Mojang's API will cause panic
  • Implement UuidsStorage in Redis. It should store data for 30 days
  • No logging mechanic
  • Obtaining textures after usernames to uuids exchange should not await all operations finish
  • Queue not integrated with the application
  • Update tests for HTTP layer of the application
  • Test behavior of exists authlibs that already used on clients when /textures request returns empty 204 response
  • Handle possible panic from Mojang's queue, log it and recover
  • Run load testing in profile mode. Try to fix the bottlenecks if any
  • Update README.md file (note on the processing queue and signedTextures request proxy param)
  • Add CHANGELOG.md file

@erickskrauch erickskrauch added the enhancement New feature or request label Apr 14, 2019
@erickskrauch erickskrauch added this to the 4.2.0 milestone Apr 14, 2019
@erickskrauch erickskrauch self-assigned this Apr 14, 2019
http/api_test.go Outdated Show resolved Hide resolved
http/cape.go Outdated Show resolved Hide resolved
http/api_test.go Outdated Show resolved Hide resolved
http/api_test.go Outdated Show resolved Hide resolved
http/api_test.go Outdated Show resolved Hide resolved
api/mojang/queue/queue_test.go Outdated Show resolved Hide resolved
@erickskrauch erickskrauch marked this pull request as ready for review April 29, 2019 22:56
CHANGELOG.md Outdated Show resolved Hide resolved
CHANGELOG.md Outdated Show resolved Hide resolved
CHANGELOG.md Outdated Show resolved Hide resolved
Co-Authored-By: erickskrauch <erickskrauch@ely.by>
@erickskrauch
Copy link
Member Author

erickskrauch commented Apr 30, 2019

@erickskrauch erickskrauch merged commit 8aeb192 into master Apr 30, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants