Prototype implementation of scopes in URLs (#493)
Introduce scopes into Debusine URLs using request.urlconf
, which is a supported Django API.
Depends on !1140 (merged), !1141 (merged), !1142 (merged)
Todo entries from docs/reference/devel-blueprints/scoped-urls.rst
:
-
Add a DEBUSINE_DEFAULT_SCOPE
setting (defaulting todebusine
) to specify the name of the default scope to use during the transitioning period where not all of Debusine is yet scope-aware. -
Design a way to set up a system of best-effort redirects. -
Make a stricter definition for scope name, and use it on URL matching and model validation. Allow [+._-]
to be used but not as first or last characters. Also use a list of reserved scope names, to avoid clashing with existing toplevel URLs -
Document a header in API calls used to select scope. -
When the header is missing, use the fallback scope.
Filed as #503 (closed):
- Add a configuration option in
debusine-client
to select the default scope - Add a command line option in
debusine-client
to specify a different scope - Make sure we have a scope-aware client in testing and stable-backports before we drop support for unscoped API calls.
Filed as #504 (closed):
- Document a procedure for sysadmins to migrate to scopes
Edited by Enrico Zini