2019-04-30 04:25:59 +05:30
|
|
|
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
|
2019-06-19 02:04:16 +05:30
|
|
|
## [Unreleased] - xxxx-xx-xx
|
2023-12-13 06:26:40 +05:30
|
|
|
### Added
|
|
|
|
- New StatsD metrics:
|
|
|
|
- Counters:
|
|
|
|
- `ely.skinsystem.{hostname}.app.profiles.request`
|
|
|
|
|
2023-12-13 06:21:22 +05:30
|
|
|
### Changed
|
|
|
|
- Bumped Go version to 1.21.
|
2021-03-04 11:33:07 +05:30
|
|
|
|
2023-12-14 06:45:59 +05:30
|
|
|
### Removed
|
|
|
|
- StatsD metrics:
|
|
|
|
- Gauges:
|
|
|
|
- `ely.skinsystem.{hostname}.app.redis.pool.available`
|
2023-12-15 08:12:38 +05:30
|
|
|
- Worker mode. Use URL spoofing to load balance outgoing requests.
|
2023-12-14 06:45:59 +05:30
|
|
|
|
2021-03-04 11:33:07 +05:30
|
|
|
## [4.6.0] - 2021-03-04
|
2021-02-26 07:15:45 +05:30
|
|
|
### Added
|
2021-02-27 07:07:59 +05:30
|
|
|
- `/profile/{username}` endpoint, which returns a profile and its textures, equivalent of the Mojang's
|
|
|
|
[UUID -> Profile + Skin/Cape endpoint](https://wiki.vg/Mojang_API#UUID_-.3E_Profile_.2B_Skin.2FCape).
|
2021-03-03 18:03:56 +05:30
|
|
|
- `/signature-verification-key.der` and `/signature-verification-key.pem` endpoints, which returns the public key in
|
|
|
|
`DER` or `PEM` formats for signature verification.
|
2021-02-26 07:15:45 +05:30
|
|
|
|
2021-02-08 01:49:01 +05:30
|
|
|
### Fixed
|
2021-03-03 06:08:47 +05:30
|
|
|
- [#28](https://github.com/elyby/chrly/issues/28): Added handling of corrupted data from the Mojang's username to UUID
|
|
|
|
cache.
|
|
|
|
- [#29](https://github.com/elyby/chrly/issues/29): If a previously cached UUID no longer exists,
|
2021-02-08 01:49:01 +05:30
|
|
|
it will be invalidated and re-requested.
|
|
|
|
- Use correct status code for error about empty response from Mojang's API.
|
2020-05-02 00:08:18 +05:30
|
|
|
|
2021-02-26 07:15:45 +05:30
|
|
|
### Changed
|
2021-02-27 07:07:59 +05:30
|
|
|
- **BREAKING**: `/cloaks/{username}` and `/textures/{username}` endpoints will no longer return a cape if there are no
|
|
|
|
textures for the requested username.
|
|
|
|
- All endpoints are now returns `500` status code when an error occurred during request processing.
|
2021-03-03 05:53:34 +05:30
|
|
|
- Increased the response timeout for Mojang's API from 3 to 10 seconds.
|
2021-02-26 07:15:45 +05:30
|
|
|
|
2020-05-02 00:08:18 +05:30
|
|
|
## [4.5.0] - 2020-05-01
|
2020-04-24 15:50:03 +05:30
|
|
|
### Added
|
2020-04-26 20:25:02 +05:30
|
|
|
- [#24](https://github.com/elyby/chrly/issues/24): Implemented a new strategy for the queue in the batch provider of
|
|
|
|
Mojang UUIDs: `full-bus`.
|
2020-04-27 00:26:03 +05:30
|
|
|
- New configuration param `QUEUE_STRATEGY` with the default value `periodic`.
|
|
|
|
- New configuration params: `MOJANG_API_BASE_URL` and `MOJANG_SESSION_SERVER_BASE_URL`, that allow you to spoof
|
|
|
|
Mojang API base addresses.
|
2020-05-01 01:46:22 +05:30
|
|
|
- New health checker, that ensures that response for textures provider from Mojang's API is valid.
|
2020-05-01 02:36:56 +05:30
|
|
|
- `dev` Docker images now have the `--cpuprofile` flag, which allows you to run the program with CPU profiling.
|
2020-05-01 05:16:12 +05:30
|
|
|
- New StatsD metrics:
|
|
|
|
- Gauges:
|
|
|
|
- `ely.skinsystem.{hostname}.app.redis.pool.available`
|
2020-04-24 03:32:38 +05:30
|
|
|
|
2020-04-30 00:24:40 +05:30
|
|
|
### Fixed
|
|
|
|
- Handle the case when there is no textures property in Mojang's response.
|
2020-05-01 05:36:45 +05:30
|
|
|
- Handle `SIGTERM` as a valid stop signal for a graceful shutdown since it's the default stop code for the Docker.
|
2020-05-01 06:26:41 +05:30
|
|
|
- Default connections pool size for Redis.
|
2020-04-30 00:24:40 +05:30
|
|
|
|
2020-04-26 19:04:46 +05:30
|
|
|
### Changed
|
|
|
|
- `ely.skinsystem.{hostname}.app.mojang_textures.usernames.round_time` timer will not be recorded if the iteration was
|
|
|
|
empty.
|
|
|
|
|
2020-04-24 03:32:38 +05:30
|
|
|
## [4.4.1] - 2020-04-24
|
2020-04-23 23:40:42 +05:30
|
|
|
### Added
|
|
|
|
- [#20](https://github.com/elyby/chrly/issues/20): Print hostname in the `version` command output.
|
2020-04-23 23:52:12 +05:30
|
|
|
- [#21](https://github.com/elyby/chrly/issues/21): Print Chrly's version during server startup.
|
2020-04-23 23:40:42 +05:30
|
|
|
|
2020-04-23 23:13:36 +05:30
|
|
|
### Fixed
|
|
|
|
- [#22](https://github.com/elyby/chrly/issues/22): Correct version passing during building of the Docker image.
|
2020-04-22 18:23:02 +05:30
|
|
|
|
|
|
|
## [4.4.0] - 2020-04-22
|
2019-11-21 04:03:13 +05:30
|
|
|
### Added
|
2020-04-06 19:45:40 +05:30
|
|
|
- Mojang textures queue now can be completely disabled via `MOJANG_TEXTURES_ENABLED` param.
|
2020-01-05 22:49:41 +05:30
|
|
|
- Remote mode for Mojang's textures queue with a new configuration params: `MOJANG_TEXTURES_UUIDS_PROVIDER_DRIVER` and
|
|
|
|
`MOJANG_TEXTURES_UUIDS_PROVIDER_URL`.
|
|
|
|
|
|
|
|
For example, to send requests directly to [Mojang's APIs](https://wiki.vg/Mojang_API#Username_-.3E_UUID_at_time),
|
|
|
|
set the next configuration:
|
|
|
|
- `MOJANG_TEXTURES_UUIDS_PROVIDER_DRIVER=remote`
|
|
|
|
- `MOJANG_TEXTURES_UUIDS_PROVIDER_URL=https://api.mojang.com/users/profiles/minecraft/`
|
|
|
|
- Implemented worker mode. The app starts with the only one API endpoint: `/api/worker/mojang-uuid/{username}`,
|
|
|
|
which is compatible with [Mojang's endpoint](https://wiki.vg/Mojang_API#Username_-.3E_UUID_at_time) to exchange
|
|
|
|
username to its UUID. It can be used with some load balancing software to increase throughput of Mojang's textures
|
|
|
|
proxy by splitting the load across multiple servers with its own IPs.
|
2020-01-06 02:46:38 +05:30
|
|
|
- Textures extra param is now can be configured via `TEXTURES_EXTRA_PARAM_NAME` and `TEXTURES_EXTRA_PARAM_VALUE`.
|
2019-11-21 04:03:13 +05:30
|
|
|
- New StatsD metrics:
|
|
|
|
- Counters:
|
|
|
|
- `ely.skinsystem.{hostname}.app.mojang_textures.usernames.textures_hit`
|
|
|
|
- `ely.skinsystem.{hostname}.app.mojang_textures.usernames.textures_miss`
|
2020-04-06 19:00:55 +05:30
|
|
|
- All incoming requests are now logging to the console in
|
|
|
|
[Apache Common Log Format](http://httpd.apache.org/docs/2.2/logs.html#common).
|
2020-04-21 00:48:27 +05:30
|
|
|
- Added `/healthcheck` endpoint.
|
2020-04-19 05:01:09 +05:30
|
|
|
- Graceful server shutdown.
|
2020-04-20 19:52:19 +05:30
|
|
|
- Panics in http are now logged in Sentry.
|
2019-11-21 04:03:13 +05:30
|
|
|
|
|
|
|
### Fixed
|
|
|
|
- `ely.skinsystem.{hostname}.app.mojang_textures.usernames.iteration_size` and
|
2020-01-05 22:49:41 +05:30
|
|
|
`ely.skinsystem.{hostname}.app.mojang_textures.usernames.queue_size` are now updates even if the queue is empty.
|
2020-04-20 22:28:31 +05:30
|
|
|
- Don't return an empty object if Mojang's textures don't contain any skin or cape.
|
2020-04-22 05:20:04 +05:30
|
|
|
- Provides a correct URL scheme for the cape link.
|
2019-11-21 04:03:13 +05:30
|
|
|
|
|
|
|
### Changed
|
2020-01-05 22:49:41 +05:30
|
|
|
- **BREAKING**: `QUEUE_LOOP_DELAY` param is now sets as a Go duration, not milliseconds.
|
|
|
|
For example, default value is now `2s500ms`.
|
|
|
|
- **BREAKING**: Event `ely.skinsystem.{hostname}.app.mojang_textures.already_in_queue` has been renamed into
|
|
|
|
`ely.skinsystem.{hostname}.app.mojang_textures.already_scheduled`.
|
2020-04-06 19:07:22 +05:30
|
|
|
- Bumped Go version to 1.14.
|
2019-11-08 04:42:31 +05:30
|
|
|
|
2020-03-30 15:00:06 +05:30
|
|
|
### Removed
|
|
|
|
- **BREAKING**: `ely.skinsystem.{hostname}.app.mojang_textures.invalid_username` counter has been removed.
|
|
|
|
|
2019-11-08 04:42:31 +05:30
|
|
|
## [4.3.0] - 2019-11-08
|
2019-11-08 04:02:26 +05:30
|
|
|
### Added
|
2019-11-21 04:03:13 +05:30
|
|
|
- 403 Forbidden errors from the Mojang's API are now logged.
|
|
|
|
- `QUEUE_LOOP_DELAY` configuration param to adjust Mojang's textures queue performance.
|
2019-11-08 04:24:16 +05:30
|
|
|
|
|
|
|
### Changed
|
2019-11-21 04:03:13 +05:30
|
|
|
- Mojang's textures queue loop is now has an iteration delay of 2.5 seconds (was 1).
|
2019-11-08 04:38:10 +05:30
|
|
|
- Bumped Go version to 1.13.
|
2019-10-03 03:56:34 +05:30
|
|
|
|
|
|
|
## [4.2.3] - 2019-10-03
|
2019-10-03 03:30:27 +05:30
|
|
|
### Changed
|
|
|
|
- Mojang's textures queue batch size [reduced to 10](https://wiki.vg/index.php?title=Mojang_API&type=revision&diff=14964&oldid=14954).
|
|
|
|
- 400 BadRequest errors from the Mojang's API are now logged.
|
2019-06-19 02:04:16 +05:30
|
|
|
|
2019-06-19 03:32:41 +05:30
|
|
|
## [4.2.2] - 2019-06-19
|
2019-06-19 02:04:16 +05:30
|
|
|
### Fixed
|
|
|
|
- GC for in-memory textures cache has not been initialized.
|
2019-05-06 19:50:52 +05:30
|
|
|
|
|
|
|
## [4.2.1] - 2019-05-06
|
2019-05-06 01:36:29 +05:30
|
|
|
### Changed
|
2019-05-06 19:47:44 +05:30
|
|
|
- Improved Keep-Alive settings for HTTP client used to perform requests to Mojang's APIs.
|
2019-05-06 01:36:29 +05:30
|
|
|
- Mojang's textures queue now has static delay of 1 second after each iteration to prevent strange `429` errors.
|
|
|
|
- Mojang's textures queue now caches even errored responses for signed textures to avoid `429` errors.
|
|
|
|
- Mojang's textures queue now caches textures data for 70 seconds to avoid strange `429` errors.
|
|
|
|
- Mojang's textures queue now doesn't log timeout errors.
|
2019-05-02 23:37:40 +05:30
|
|
|
|
2019-05-06 19:42:37 +05:30
|
|
|
### Fixed
|
|
|
|
- Panic when Redis connection is broken.
|
|
|
|
- Duplication of Redis connections pool for Mojang's textures queue.
|
2019-05-06 19:47:44 +05:30
|
|
|
- Removed validation rules for `hash` field.
|
2019-05-06 19:42:37 +05:30
|
|
|
|
2019-05-02 23:37:40 +05:30
|
|
|
## [4.2.0] - 2019-05-02
|
2019-04-30 04:25:59 +05:30
|
|
|
### Added
|
|
|
|
- `CHANGELOG.md` file.
|
|
|
|
- [#1](https://github.com/elyby/chrly/issues/1): Restored Mojang skins proxy.
|
|
|
|
- New StatsD metrics:
|
|
|
|
- Counters:
|
|
|
|
- `ely.skinsystem.{hostname}.app.mojang_textures.invalid_username`
|
|
|
|
- `ely.skinsystem.{hostname}.app.mojang_textures.request`
|
|
|
|
- `ely.skinsystem.{hostname}.app.mojang_textures.usernames.cache_hit_nil`
|
|
|
|
- `ely.skinsystem.{hostname}.app.mojang_textures.usernames.queued`
|
|
|
|
- `ely.skinsystem.{hostname}.app.mojang_textures.usernames.cache_hit`
|
|
|
|
- `ely.skinsystem.{hostname}.app.mojang_textures.already_in_queue`
|
|
|
|
- `ely.skinsystem.{hostname}.app.mojang_textures.usernames.uuid_miss`
|
|
|
|
- `ely.skinsystem.{hostname}.app.mojang_textures.usernames.uuid_hit`
|
|
|
|
- `ely.skinsystem.{hostname}.app.mojang_textures.textures.cache_hit`
|
|
|
|
- `ely.skinsystem.{hostname}.app.mojang_textures.textures.request`
|
|
|
|
- Gauges:
|
|
|
|
- `ely.skinsystem.{hostname}.app.mojang_textures.usernames.iteration_size`
|
|
|
|
- `ely.skinsystem.{hostname}.app.mojang_textures.usernames.queue_size`
|
|
|
|
- Timers:
|
|
|
|
- `ely.skinsystem.{hostname}.app.mojang_textures.result_time`
|
|
|
|
- `ely.skinsystem.{hostname}.app.mojang_textures.usernames.round_time`
|
|
|
|
- `ely.skinsystem.{hostname}.app.mojang_textures.textures.request_time`
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
- Bumped Go version to 1.12.
|
2019-05-03 00:25:21 +05:30
|
|
|
- Bumped Alpine version to 3.9.3.
|
2019-04-30 04:25:59 +05:30
|
|
|
|
|
|
|
### Fixed
|
2019-04-30 13:33:58 +05:30
|
|
|
- `/textures` request no longer proxies request to Mojang in a case when there is no information about the skin,
|
2019-04-30 04:25:59 +05:30
|
|
|
but there is a cape.
|
2019-05-01 04:40:11 +05:30
|
|
|
- [#5](https://github.com/elyby/chrly/issues/5): Return Redis connection to the pool after commands are executed
|
2019-04-30 04:25:59 +05:30
|
|
|
|
|
|
|
### Removed
|
2019-04-30 13:33:58 +05:30
|
|
|
- `hash` field from `/textures` response because the game doesn't use it and calculates hash by getting the filename
|
|
|
|
from the textures link instead.
|
2019-05-01 04:21:16 +05:30
|
|
|
- `hash` field from `POST /api/skins` endpoint.
|
2019-04-30 04:25:59 +05:30
|
|
|
|
2021-03-04 11:33:07 +05:30
|
|
|
[Unreleased]: https://github.com/elyby/chrly/compare/4.6.0...HEAD
|
|
|
|
[4.6.0]: https://github.com/elyby/chrly/compare/4.5.0...4.6.0
|
2020-05-02 00:08:18 +05:30
|
|
|
[4.5.0]: https://github.com/elyby/chrly/compare/4.4.1...4.5.0
|
2020-04-24 03:32:38 +05:30
|
|
|
[4.4.1]: https://github.com/elyby/chrly/compare/4.4.0...4.4.1
|
2020-04-22 18:23:02 +05:30
|
|
|
[4.4.0]: https://github.com/elyby/chrly/compare/4.3.0...4.4.0
|
2019-11-08 04:42:31 +05:30
|
|
|
[4.3.0]: https://github.com/elyby/chrly/compare/4.2.3...4.3.0
|
2019-10-03 03:56:34 +05:30
|
|
|
[4.2.3]: https://github.com/elyby/chrly/compare/4.2.2...4.2.3
|
2019-06-19 03:32:41 +05:30
|
|
|
[4.2.2]: https://github.com/elyby/chrly/compare/4.2.1...4.2.2
|
2019-05-06 19:50:52 +05:30
|
|
|
[4.2.1]: https://github.com/elyby/chrly/compare/4.2.0...4.2.1
|
2019-05-02 23:37:40 +05:30
|
|
|
[4.2.0]: https://github.com/elyby/chrly/compare/4.1.1...4.2.0
|