]>
git.ipfire.org Git - pbs.git/log
Michael Tremer [Wed, 22 Jan 2025 14:53:47 +0000 (14:53 +0000)]
sessions: Rename valid_until into expires_at
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 22 Jan 2025 14:47:15 +0000 (14:47 +0000)]
backend: Re-enable the periodic cleanup job
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 22 Jan 2025 14:46:52 +0000 (14:46 +0000)]
ratelimiter: Fix cleanup
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 22 Jan 2025 14:46:40 +0000 (14:46 +0000)]
sessions: Fix cleanup
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 22 Jan 2025 14:41:27 +0000 (14:41 +0000)]
packages: Fix rendering page and fetch builds manually
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 22 Jan 2025 14:41:10 +0000 (14:41 +0000)]
builds: Add property to disable test builds
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 22 Jan 2025 14:40:42 +0000 (14:40 +0000)]
builds: Add a relationship to commits
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 22 Jan 2025 14:05:27 +0000 (14:05 +0000)]
web: Don't import everything from handlers
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 22 Jan 2025 14:03:58 +0000 (14:03 +0000)]
web: Remove any old UI methods
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 22 Jan 2025 14:00:25 +0000 (14:00 +0000)]
web: Drop importing the removed ui_modules module
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 22 Jan 2025 13:57:22 +0000 (13:57 +0000)]
builds: Fix accessing uploads
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 22 Jan 2025 13:56:29 +0000 (13:56 +0000)]
uploads: Fix deletion
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 22 Jan 2025 13:51:33 +0000 (13:51 +0000)]
packages: Fix deletion
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 22 Jan 2025 13:51:06 +0000 (13:51 +0000)]
packages: Don't fetch all builds all of the time
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 22 Jan 2025 13:49:54 +0000 (13:49 +0000)]
web: Fix sending errors for API requests
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 22 Jan 2025 13:40:36 +0000 (13:40 +0000)]
packages: Refactor importing filelists
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 22 Jan 2025 13:23:40 +0000 (13:23 +0000)]
distros: Create tag as a generated column
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 22 Jan 2025 13:00:31 +0000 (13:00 +0000)]
builders: Refactor dispatching jobs
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 22 Jan 2025 12:47:52 +0000 (12:47 +0000)]
builders: Fetch the builder again on message
This is necessary because this will be launched in a new task. Since we
cannot use the object from a different session, we have to fetch the
builder again.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 22 Jan 2025 12:47:33 +0000 (12:47 +0000)]
builders: Fix logging stats
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 22 Jan 2025 12:05:54 +0000 (12:05 +0000)]
builders: Fix connecting to the controller
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 17:21:06 +0000 (17:21 +0000)]
builders: Implement fetching uploads
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 17:15:45 +0000 (17:15 +0000)]
distros: Remove the unused ReleasesList module
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 17:14:34 +0000 (17:14 +0000)]
builds: Add missing shorter argument to BuildList
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 17:13:08 +0000 (17:13 +0000)]
bulma: Upgrade to Bulma 0.9.4
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 17:10:11 +0000 (17:10 +0000)]
events: Don't link to deleted items
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 16:38:19 +0000 (16:38 +0000)]
builders: Fix creating/deleting builders
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 16:37:28 +0000 (16:37 +0000)]
database: Remove unused declarations
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 15:56:18 +0000 (15:56 +0000)]
users: Remove extra attributes that were used by the testsuite
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 15:54:28 +0000 (15:54 +0000)]
web: Create a handler that can only be called by admins
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 15:32:31 +0000 (15:32 +0000)]
builders: Fix starting/stopping builders
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 15:17:26 +0000 (15:17 +0000)]
builders: Fix editing builders
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 15:17:14 +0000 (15:17 +0000)]
web: Make the modal template fit for Jinja
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 15:11:24 +0000 (15:11 +0000)]
builders: Fix current user permission check
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 15:07:50 +0000 (15:07 +0000)]
web: Replace authentication decorate with our custom version
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 15:05:50 +0000 (15:05 +0000)]
builders: Fix name of edit handler
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 15:04:41 +0000 (15:04 +0000)]
builders: Fix showing running jobs
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 15:04:28 +0000 (15:04 +0000)]
builders: Fix showing the total build time
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 15:04:04 +0000 (15:04 +0000)]
builders: The hostname has been renamed
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 15:03:41 +0000 (15:03 +0000)]
events: Repositories have been renamed
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 14:55:12 +0000 (14:55 +0000)]
web: Fail if template variables are not defined
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 14:54:58 +0000 (14:54 +0000)]
web: Always set the XSRF token in the environment
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 14:47:00 +0000 (14:47 +0000)]
distros: Release the strong relationship to releases
We don't want to fetch all releases every time we access the
distribution.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 14:38:48 +0000 (14:38 +0000)]
cache: Remove unused Redis cache
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 14:36:33 +0000 (14:36 +0000)]
packages: Limit viewing/downloading of files
This is all going into a single bucket so that we don't have a rate
limiter per path.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 14:36:20 +0000 (14:36 +0000)]
ratelimiter: Allow passing arbitrary arguments
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 14:27:03 +0000 (14:27 +0000)]
ratelimiter: Reimplement using the PostgreSQL database
Redis does not seem the right choice for this. We can have a fast,
unlogged database table for any of this data and we can drop the entire
depdency to redis.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 14:24:54 +0000 (14:24 +0000)]
auth: Fix logging out
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 14:24:28 +0000 (14:24 +0000)]
database: Allow to execute raw statements
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 11:00:21 +0000 (11:00 +0000)]
db: Import any schema changes
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 10:57:55 +0000 (10:57 +0000)]
repos: Rename from repository
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 10:54:12 +0000 (10:54 +0000)]
distros: Rename from distributions
I don't want to typo so many letters...
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 10:51:16 +0000 (10:51 +0000)]
images: Split them off into their own module
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 10:48:34 +0000 (10:48 +0000)]
releases: Split them off into their own file
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 21 Jan 2025 10:38:58 +0000 (10:38 +0000)]
Migrate to an even more async design
This monster commit replaces our database engine by SQLAlchemy so that
we can utilise eager loading and don't have to implement this on our
own. Although Jinja is a lot more flexible and allows us to
asynchronically fetch any data, we cannot really have async properties.
Therefore it is a good idea to have some eager loading happening when we
fetch certain objects that will always depend on some other objects.
This has been a major rewrite of the backend which still isn't done, but
I needed to commit this somehow. There was little point it doing it
gradually so here is this mountain of a commit. Enjoy.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 15 Jan 2025 19:13:23 +0000 (19:13 +0000)]
backend: Load krb5 and sync settings from config
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 15 Jan 2025 15:59:44 +0000 (15:59 +0000)]
AWS: Read configuration from file
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 12 Jan 2025 15:13:11 +0000 (15:13 +0000)]
web: Implement translation
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 12 Jan 2025 14:03:57 +0000 (14:03 +0000)]
web: Load some useful Jinja extensions
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 12 Jan 2025 13:43:25 +0000 (13:43 +0000)]
web: Convert login page to Jinja
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 12 Jan 2025 13:34:59 +0000 (13:34 +0000)]
web: Set globals to avoid a namespace that is too large
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 12 Jan 2025 13:33:13 +0000 (13:33 +0000)]
templates: Convert the error template to Jinja
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 12 Jan 2025 13:32:46 +0000 (13:32 +0000)]
templates: Convert the base template to Jinja
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 12 Jan 2025 13:32:05 +0000 (13:32 +0000)]
web: Make the request handler as async as possible
This code is mainly copied from upstream and made to work with async
functions for the error handlers.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 12 Jan 2025 12:56:19 +0000 (12:56 +0000)]
web: Make the new template engine async
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 12 Jan 2025 12:44:25 +0000 (12:44 +0000)]
web: Replace the Tornado template engine with Jinja
We need this to support any async code in the templates.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 12 Jan 2025 11:51:21 +0000 (11:51 +0000)]
Try to make this entire application async
We will need this so that we won't run out of database file descriptors
as psycopg3 currently can only use select() which does not support a
file descriptor to have a number over 1024.
We will also need this to scale this application better. However,
Tornado has some limitations in its template engine which is why we will
need to replace the template engine with Jinja.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 12 Jan 2025 11:51:03 +0000 (11:51 +0000)]
httpclient: Read proxy configuration from config file
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 12 Jan 2025 11:50:42 +0000 (11:50 +0000)]
backend: Read base URL from configuration
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 3 Nov 2024 14:10:58 +0000 (14:10 +0000)]
backend: Launch Pakfire with its own context
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 3 Nov 2024 14:09:38 +0000 (14:09 +0000)]
web: jobs: Include the default backend
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 15 Sep 2024 04:53:37 +0000 (04:53 +0000)]
web: Drop the POST-based stats handler
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 15 Sep 2024 02:15:38 +0000 (02:15 +0000)]
uploads: Require authentication when uploading the payload
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 13 Aug 2024 19:03:02 +0000 (19:03 +0000)]
web: Regularly ping WebSocket clients to keep connections alive
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 15 Feb 2024 16:15:55 +0000 (16:15 +0000)]
auth: Disable autocomplete for passwords
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 15 Feb 2024 16:11:13 +0000 (16:11 +0000)]
cookies: Set secure attribute for all cookies
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 1 Nov 2023 10:24:52 +0000 (10:24 +0000)]
Pakfire: Remove deprecated arguments
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 1 Nov 2023 10:18:41 +0000 (10:18 +0000)]
Update setting the cache path
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 1 Nov 2023 10:07:44 +0000 (10:07 +0000)]
jobs: Update API
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 1 Nov 2023 10:06:12 +0000 (10:06 +0000)]
repos: Update API authentication
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 1 Nov 2023 10:05:51 +0000 (10:05 +0000)]
builders: Fix API authentication
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 31 Oct 2023 11:51:07 +0000 (11:51 +0000)]
builders: Make statistics percentage value range from 0 - 1
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 31 Oct 2023 11:46:37 +0000 (11:46 +0000)]
builders: Add a new stats handler
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 20 Oct 2023 09:49:05 +0000 (09:49 +0000)]
builds: Update API error response codes
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 20 Oct 2023 09:48:36 +0000 (09:48 +0000)]
uploads: Show if payload has been received and block sending it again
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 20 Oct 2023 09:34:20 +0000 (09:34 +0000)]
builds: Require SPNEGO
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 20 Oct 2023 09:33:56 +0000 (09:33 +0000)]
uploads: Use errno codes
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 20 Oct 2023 09:23:40 +0000 (09:23 +0000)]
uploads: Log any incorrect digests
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 20 Oct 2023 09:19:20 +0000 (09:19 +0000)]
uploads: Align response codes
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 20 Oct 2023 09:18:55 +0000 (09:18 +0000)]
uploads: Fail quickly if no payload was received
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 20 Oct 2023 09:17:53 +0000 (09:17 +0000)]
uploads: Fix deleting uploads if no payload was received
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 20 Oct 2023 09:17:13 +0000 (09:17 +0000)]
web: Do not try to send (multiline) error messages in status
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 19 Oct 2023 20:43:15 +0000 (20:43 +0000)]
web: Make APIError inherit from HTTPError
This way, tornado will catch the exception and log something useful
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 19 Oct 2023 20:40:37 +0000 (20:40 +0000)]
web: Send better errors for failed upload requests
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 19 Oct 2023 16:03:55 +0000 (16:03 +0000)]
uploads: Rewrite the whole thing
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 19 Oct 2023 13:25:51 +0000 (13:25 +0000)]
web: Add decorator to require clients to do SPNEGO
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 19 Oct 2023 13:03:29 +0000 (13:03 +0000)]
users: Return 0 when no quota has been used
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 19 Oct 2023 10:41:50 +0000 (10:41 +0000)]
config: Create a temporary directory
As a non-privileged user, we cannot mount a ramdisk which is why we
cannot use this and need to pre-create an empty directory.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 19 Oct 2023 10:34:38 +0000 (10:34 +0000)]
repos: Only set priority if configured
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 19 Oct 2023 10:34:08 +0000 (10:34 +0000)]
jobs: Fix quota calculation for release builds
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>