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

feat: Add "secure" branches to XLWebServices #9

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

KazWolfe
Copy link
Member

This pull request aims to add two capabilities to XLWebServices:

First, it allows beta keys to be validated server-side, which will simplify update eligibility checks on the client. Clients may pass in ?trackKey=foo, which will trigger checking the key against the recorded entry in declarative. This allows client code to not need to care about key management beyond passing things to the server.

Second, it introduces two new concepts: a HashedKey (used for tests where limited access is desirable), and a Visible flag for branches (used for hiding a non-hashed branch from the Branch Selector). A branch with Visible = false will still show up when requested directly.

- New HashedKey param allows a SHA256 key to be declared.
- New Visible param allows a branch to be hidden.
- Add new `trackKey` param to VersionInfo endpoint
  - Validate this key if passed, or if the branch doesn't have a public key.
@KazWolfe
Copy link
Member Author

KazWolfe commented Nov 26, 2024

To note: secure keys not intended for patch-day beta tests or similar. They're designed to allow the Dalamud team to easily push specific branches out to select groups of testers without requiring said testers build code or download artifacts from GitHub. Examples of intended uses are, e.g. our much-anticipated april fools' branches.

The author of this PR is well aware that any such hashed keys can be easily bypassed through minimal effort, so no attempt is being made to actually protect resources at that level.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant