Releases: ArunaBot/ArunaCore
v1.0.0-BETA.5
-
[FIX] Wrong management of
coreKey- Fixed an issue where the
coreKeywas handled incorrectly, causing it
to be always null, resulting in clients being unable to access
restricted resources.
- Fixed an issue where the
-
[FEAT] Split
401 Unauthorizedinto401 Unauthorizedand403 Forbidden- Now,
401is used when authentication fails (e.g., invalid secure
key), while403is used when access is denied despite valid
authentication (e.g., insufficient permissions, invalid key for specific
target communication, invalid masterkey, etc.). - This provides clearer feedback to clients about the nature of access
issues.
- Now,
-
[FEAT] Implemented
client.request()method inWebSocketClient- This method allows sending a message and awaiting a response,
simplifying request-response interactions. - To use it, simply call
client.request(message)and await the
returned promise. - To respond to such request on the other side, handle the
request
event and reply usingmessage.reply.
- This method allows sending a message and awaiting a response,
-
[CHORE] Improved code documentation and comments for better clarity
and maintainability.
v1.0.0-BETA.4
-
[BREAKING] Dropped support for all versions below Node.js v20.11.1
- While the api may still work on older versions, the app itself can't
run on them anymore due to internal fs changes.
- While the api may still work on older versions, the app itself can't
-
[BREAKING] Application register flow changed
- New websocket connections now register on the upgrade request, not
after the connection is established.- This simplifies the connection process and improves performance.
- New websocket connections now register on the upgrade request, not
-
[BREAKING] Removed
isRegistered()method fromArunaClient- This method became obsolete with the new registration flow.
-
[FEAT] Better docker support
- Enforce port to 3000 inside the container, regardless of the
configuration file. - This allows easier deployment and avoids port conflicts, allowing the
user to map the port as needed in the docker itself.
- Enforce port to 3000 inside the container, regardless of the
v1.0.0-BETA.3
-
[FIX] Dead WebSocket connections not being properly handled
- Now, when a connection is considered dead, all
'pong'event listeners are removed and the promise resolves the correct state. - This prevents memory leaks and improves stability.
- Now, when a connection is considered dead, all
-
[FIX] Wrong
masterkeycasing in configuration- Fixed an issue where the
masterkeyproperty was not being recognized due to incorrect casing.
- Fixed an issue where the
-
[FIX] Add dependency removed by accident
-
[NEW] Added typing for client-emitted events
- This improves developer experience and type safety when handling events emitted by clients.
v1.0.0-BETA.2
-
[BREAKING] Removed deprecated methods from
WebSocketParser- These methods were deprecated in the previous version, so they were removed now.
-
[FIX] Removed deprecated Node flag
--loaderfrom start and test scripts- This flag was deprecated in Node.js v20.0.0 and replaced by the
--importflag.
- This flag was deprecated in Node.js v20.0.0 and replaced by the
-
[DOCS] Updated important JSDoc comments
v1.0.0-BETA.1
-
[BREAKING] Dropped support for all versions below Node.js v18.8.0
- These versions are too old and can't be supported anymore.
-
[NEW] Improvements to system environment variables
- Now
ARUNACORE_<PROPERTY>variables can be used to override all properties in the configuration file- For real this time.
- Now
-
[CHORE] Updated dependencies
v1.0.0-BETA.0
Yes, we are finally in beta! 🎉
This release includes a lot of changes and improvements, so check the changelog to see what's new.
-
[BREAKING] Drop support for all versions below Node.js v16.20.0
- Our build system was improved and can't build in version 14 or lower anymore
- Also, our load system uses features from Node.js v16.20.0, so we can't support older versions anymore
-
[BREAKING] Message system was refactored
- Instead of a crazy irc-inspired message system, we now use simple json objects
- The send method was changed, and you will need to update your code to use the new one
- Legacy "command" and "args" properties are now optional, and you probably won't need to use them anymore
- New parameter "content" was added, this accepts anything and will be sent as the message content
- The property "type" in message doesn't mean the client type anymore, now it means the message type (update your code to reflect this change)
- Various other changes were made, so check IMessage interface to see all changes
-
[BREAKING] ArunaCore is now an ES module
- This doesn't affect the api, so your code probably will work without issues
-
[DEPRECATED] Various methods from
WebSocketParserwere deprecated- They will be removed in some future version, so update your code to use the new methods
-
[CHANGE] We changed the project structure
- Say goodbye to multiples
node_modulesfolders (we now use a single in the root and another in api only) - Now we use a single
package.jsonfile in the root of the project (and another in api only) - Now we use a single
tsconfig.jsonfile in the root of the project (and another in api only) - This reduces significantly the project size and build time (and also makes it easier to maintain)
- Say goodbye to multiples
-
[CHANGE] Build system was improved
- Since we have abandoned the multiple modules structure, we can now use a single build system
- This includes the api (you don't need to build it separately anymore)
-
[CHANGE] Increase WebSocket payload size limit
- Now we support payloads up to 512kb
-
[NEW] Add configuration system
- Now you can configure the system (including server port) editing the
bundle/config/config.jsonfile - You can also use enviroment
ARUNACORE_<PROPERTY>variables to override the configuration file
- Now you can configure the system (including server port) editing the
-
[NEW] Add
masterkeyto allow access to restricted endpoints and commands- You can set the masterkey in the configuration file or in the enviroment variable
ARUNACORE_MASTERKEY - If a masterkey is not provided, all restricted endpoints and commands will be disabled and will return a
503error
- You can set the masterkey in the configuration file or in the enviroment variable
-
[NEW] Create a connection structure
- Usefull to store and manipulate connections
-
[FIX] Timeouts not being cleared
- This also reduces test time
-
[FIX] HTTP server not responding unknown endpoints
- Now it returns a
404error (as expected) instead just doing nothing and waiting for a timeout
- Now it returns a
-
[FIX] HTTP doesn't support body
- Since the default node http server doesn't support body, we've implemented a custom parser to support it
-
[FIX] HTTP server routes begin case sensitive
- Now all routes are case insensitive
-
[CHORE] Update dependencies
-
[CHORE] Improve documentation
-
[CHORE] Create a changelog file to keep track of changes
- Probably includes all changes from previous versions
v1.0.0-ALPHA.3
API 1.0.0-ALPHA.5, Core 1.0.0-ALPHA.3 (#3)
v1.0.0-ALPHA.2
(fix): publish workflow
v1.0.0-ALPHA.1
(ci): fix publish workflow
v1.0.0-ALPHA.0
The first usable release!