Skip to content

Rework the whole thing to be API-driven instead of a UI#1

Merged
evanebb merged 28 commits intomainfrom
rework-api-driven
Mar 21, 2025
Merged

Rework the whole thing to be API-driven instead of a UI#1
evanebb merged 28 commits intomainfrom
rework-api-driven

Conversation

@evanebb
Copy link
Copy Markdown
Owner

@evanebb evanebb commented Mar 18, 2025

This makes it more suitable for what I want to do, and the UI was annoying :)
It's also completely backwards-incompatible and will break existing installations, but I don't care since I am the only one using it as far as I know.

  • Removes the UI, adds a REST-ish API in its place.
  • Adds support for teams, to allow multiple users to collaborate on repositories under a single namespace.
  • Authentication to the API is done through personal access tokens, the same tokens used to obtain a JWT for the registry. The only exception is the endpoint to generate a new token, which can be accessed directly with a username and password (otherwise you'll never be able to access the API).
  • Personal access tokens are now hashed using SHA256 with a salt instead of bcrypt. This is because bcrypt is of course slow by design to combat brute-forcing, which isn't ideal since we have to verify the token during every request. Since personal access tokens are generated by the application itself with enough entropy, the security vs speed trade-off is worth it for me :)
  • Adds cross-method transaction support to the stores.

evanebb added 28 commits March 18, 2025 16:28
…th bcrypt

Bcrypt would be better, but it is of course 'slow' by design
Might want to support OAuth in the future and disable local auth, so don't couple it too hard
@evanebb evanebb merged commit d920727 into main Mar 21, 2025
2 checks passed
@evanebb evanebb deleted the rework-api-driven branch March 21, 2025 20:26
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