Commit graph

67 commits

Author SHA1 Message Date
bde3baec46 Refactor migrations and don't enable foreign keys
Each migration is, for the most part, a module that exposes expected
database version numbers, command identifier and documentation. This
results in all information about the migration and rollback are
found in the module itself, and builder_migrations.ml only has to
reference the module.

Some migrations require foreign keys constraints are disabled. It is not
possible to enable or disable foreign key constraints inside a
transaction.
2021-06-10 12:08:14 +02:00
Robur
f5d6475d2d fix migration, password_hash and salt are blobs 2021-06-09 13:59:04 +00:00
Robur
5cece213c2 Add a user-disable command, enforce foreign key constraints in builder_db.exe and migrations 2021-06-09 13:45:22 +00:00
Robur
31a501e0c4 Add user column to build
We want to track who uploaded what builds.
A `nologin` user is created in the migration that owns all preexisting builds.
2021-06-09 11:54:24 +00:00
Robur
eaf8a609c9 Add an access_list to grant per-job user upload permissions
Fixes #36
2021-06-08 14:54:23 +00:00
Robur
4fec5ed38c Builder_db: use foreign key for build.main_binary 2021-06-02 10:29:08 +00:00
Robur
49003ca21f Store relative paths for build artifacts in database 2021-06-01 15:43:55 +00:00
561a81a951 Alter db build index
We started looking up by date a lot.
2021-04-29 15:16:19 +02:00
52da2cf588 Refactor list result iter 2021-03-12 09:47:28 +01:00
e2a489a74d Refactor migrations 2021-03-10 10:51:34 +01:00
3b81c52c59 Expose database repr, database fixup
Parts of the database representation are exposed.
A fixup command for builder-migrations is added to remove bad database
entries fixed in a57798f4c0. It is up to
the operator to remove the files and optionally re-upload the 'full'
files to builder-web.
2021-03-08 17:01:00 +01:00
3c33d66104 Add rollback of filesize column 2021-02-24 15:07:15 +01:00
9d4a77abd4 Do sqlite dance 2021-02-24 11:31:31 +01:00
535d2ac0b9 Add file sizes 2021-02-24 11:31:31 +01:00
7b81d78554 Use scrypt (#32)
Switch to using scrypt for password hashing

Co-authored-by: Reynir Björnsson <reynir@reynir.dk>
Reviewed-on: https://git.robur.io/robur/builder-web/pulls/32
Co-Authored-By: reynir <reynir@reynir.dk>
Co-Committed-By: reynir <reynir@reynir.dk>
2021-02-23 15:20:18 +00:00
03fe06be87 Add index job_build_idx on build
This speeds up loading / by ~10x
2021-02-02 10:25:19 +01:00
56737ec71b Migration code, model aware of main binary
Sqlite3 application_id and user_version are now set to identify the
database is a builder-web database, and the user_version represents the
schema version.

The 'build' table is extended with a 'main_binary' column. This
represents the main binary artifact from the build. This is decided by
there being exactly one file in bin/.

A migration tool is written that does both migrations and rollbacks, and
migration and rollback is implemented for the above mentioned change.
2021-01-29 10:15:31 +01:00