There is no obvious need for this file to exist outside of the
assets folder and need special handling in nginx
This will also have the side effect of our logs showing the correct requested path instead of
/index.html for everything.
This allows us to lookup specific files without having to mutate the
path of the request.
Depending on the path this could potentially cause a panic if there is no character boundary at index 1.
This makes them much easier to handle when opened in the editor... 😅
... to prepare to the token scopes implementation
As discussed in the team meeting, this should instead be solved by having both variants as dedicated scopes, if necessary.
This PR adjusts our
AuthCheck calls for the three relevant endpoints (publish, change owner, yank) to check the token scope restrictions if the token has any.
Note that for the publish operation we unfortunately need an extra databa...
This allows us to use something like:
let auth = AuthCheck::default() .with_endpoint_scope(EndpointScope::ChangeOwners) .for_crate(crate_name) .check(req)?;
This PR adds four additional tests for the owner change endpoint, related to the implementation of token scopes. Note that these tests are currently all returning
200 Ok because token scope checks have not been enabled for this endpoin...
Similar to #5568, this PR implements a
CrateScope struct, which we use for the
crate_scopes column of the API tokens database table. It also includes a
matches() method to verify whether it matches a crate name or not.
This turns the
endpoint_scopes column from
Option<Vec<EndpointScope>>, which is a bit more restrictive in the values it supports, and ensure that we're only serializing endpoint scopes to the database that ac...
This should hopefully prevent more issues during publish
[gradle-intellij-plugin :intellij-emberjs:verifyPlugin] Invalid plugin descriptor 'description': All links in description must be HTTPS: http://emberjs.com/