John Ericson
323b556dc8
Minimal CA support
...
This verison has a worse UI, but also chnages the schema less: One
non-null constraint is removed, but no new columns are added.
Co-Authored-By: Andrea Ciceri <andrea.ciceri@autistici.org>
Co-Authored-By: regnat <rg@regnat.ovh>
2024-01-26 00:34:58 -05:00
Cole Helbling
61189ecca9
Helper/Nix: constructRunCommandLogPath: verify uuid is valid
...
This shouldn't be possible normally, but it is possible to:
$db->resultset('RunCommandLogs')->new({ uuid => "../etc/passwd" });
if you have access to the `$db`.
2022-01-31 08:58:33 -08:00
Cole Helbling
e381751564
Helper/Nix: constructRunCommandLogPath: return undef in case of an error
...
This allows us to give a web request to an invalid UUID a 404.
2022-01-31 08:58:33 -08:00
Cole Helbling
8eab7b8543
Helper/Nix: constructRunCommandLogPath: take RunCommandLog as input
...
This way we ensure that it actually exists in the database, rather than
blindly trusting user-generated input.
2022-01-31 08:58:33 -08:00
Cole Helbling
fc3cf4ecb2
RunCommandLogs: identify and access via uuid
...
Using a sha1 of the command combined with the build ID is not a
particularly good or unique identifier:
* A build could fail, be restarted, and then succeed -- assuming no
configuration changes, the sha1 hash of the command as well as the build
ID will be the same. This would lead to an overwritten log file.
* Allowing user input to influence filenames is not the best of ideas.
2022-01-31 08:58:33 -08:00
Cole Helbling
5d3912962b
RunCommand: use helper functions to ensure filenames and paths are the same
...
Otherwise, it's possible someone updates the format in one place but not
the others, leading to broken or incorrect functionality.
2022-01-28 13:03:15 -08:00
Janne Heß
796ce165d4
RunCommand: Allow displaying command output
2022-01-28 13:03:15 -08:00
Graham Christensen
8c50cd06e4
machines: ensure the jobset name is present
2022-01-15 17:11:08 -05:00
Graham Christensen
c7c4759600
search: fix references to jobset / project info
2022-01-14 16:38:25 -05:00
Graham Christensen
8a663f2cf8
machines: fixup refs
2022-01-14 15:23:19 -05:00
Graham Christensen
c945529f05
queue summary: fix refs
2022-01-14 15:23:19 -05:00
Graham Christensen
9708f6bf6f
Fetch the tracker HTML from the config file, remove HYDRA_TRACKER
...
The indentation in the hydra.conf makes it possible to include multi-line
strings without it being likely that the contents of the tracker
is mis-parsed or interrupts tho config parser.
It isn't impossible / foolproof probably, but it shouldn't be likely.
2022-01-05 15:27:21 -05:00
Graham Christensen
f2f8d571f3
queue-runner-status: fixup from perlcritic-level-2
...
>
> from_json was legacy / deprecated. This was the only use.
2021-12-15 17:24:23 -05:00
Graham Christensen
aa7b37838a
PerlCritic: MoreUtils -> SomeUtils
2021-12-14 10:16:25 -05:00
Graham Christensen
7dcf6a01c6
JSON -> JSON::MaybeXS
2021-12-13 15:37:56 -05:00
Cole Helbling
5659d2982c
Hydra/Controller/Root: remove deprecated LocalRegex
...
11:38:20 hydra-server.1 | DEPRECATION WARNING: The Regex dispatch type is deprecated.
11:38:20 hydra-server.1 | It is recommended that you convert Regex and LocalRegex
11:38:20 hydra-server.1 | methods to Chained methods. at /nix/store/aa6gw57fnahd4824pbhmvcs0jlypmynq-hydra-perl-deps/lib/perl5/site_perl/5.32.1/Catalyst/DispatchType/Regex.pm line 210.
2021-12-03 12:12:53 -08:00
Graham Christensen
09ad52ab60
Document getEvals a bit
...
Also drop the $self parameter.
Co-authored-by: gustavderdrache
2021-06-16 13:15:01 -04:00
Graham Christensen
9225be0897
Drop remaining sha1_hex references
...
Co-authored-by: Graham Christensen <graham@grahamc.com>
2021-04-15 11:35:18 -04:00
Graham Christensen
afd064d19d
Merge pull request #867 from ck3d/fix-proxy-login
...
Fix login if Hydra runs behind HTTP proxy with sub-path location
2021-04-12 17:36:55 +00:00
Graham Christensen
a46f655c56
root project listing: show hidden projects at the end
...
Makes the zebra striping correct.
2021-03-31 14:33:20 +00:00
Christian Kögler
150213cbb3
Fix login if Hydra runs behind HTTP proxy with sub-path location
2021-02-07 19:18:29 +01:00
Graham Christensen
91e63fb7da
search: limit queries to 20s
...
Even 20s is really long, but it cuts off queries which are today
running for 500+s.
2021-01-30 11:51:20 -05:00
Graham Christensen
4f308b1f2f
search: limit results to 50, default to 10
...
This search query is pretty heavy. Defaulting to 500 has caused
Hydra's web UI to appear to be down. Since 500 can take it down, users
probably shouldn't be allowed t ask for that many.
2021-01-30 08:37:57 -05:00
Jelle Besseling
bbd4891133
Implement GitHub logins
...
Requires the following configuration options
enable_github_login = 1
github_client_id
github_client_secret
Or github_client_secret_file which points to a file with the secret
2020-12-28 14:37:03 +01:00
Eelco Dolstra
8adb433e3b
Remove the Jobs table
...
This table has been superfluous for a long time.
2020-05-27 20:09:36 +02:00
Graham Christensen
937e165328
export a /prometheus endpoint
...
Currently only shows per-machine build times
2019-09-24 16:50:52 -04:00
Antoine Eiche
d1e590af1f
hydra-server: add limit
parameter to the search
path
...
This allows a client to set a limit to the search results it wants to
get:
http://hydra.nixos.org/search?query=emacs&limit=1
This returns only 1 results (while the default is 500).
2019-06-19 14:30:32 +02:00
Antoine Eiche
cb1fce21ba
hydra-server: set a limit on builds and buildoutputs search
...
This patch adds a limit statement for Postgresql queries on `builds`
and `buildsoutputs` tables.
2019-06-19 14:28:55 +02:00
Antoine Eiche
778fc03570
Allow to search builds by hash
...
Currently, a full store path has to be provided to search in
builds. This patch permits to search jobs with a output path or
derivation hash.
Usecase: we are building Docker images with Hydra. The tag of the
Docker image is the hash of the image output path. This patch would
allow us to find back the build job from the tag of a running
container image.
2019-06-05 11:56:42 +02:00
Graham Christensen
215ca5da9c
Merge pull request #607 from nlewo/json-search
...
Add JSON search API endpoint
2019-03-18 15:08:32 -05:00
Graham Christensen
88a92256e1
Merge pull request #636 from Ma27/serve-json-for-evals-and-machines
...
Serialize data as JSON with `Accept: application/json`
2019-03-17 17:17:17 -04:00
Maximilian Bosch
1cbbc6c52c
Serialize data as JSON with Accept: application/json
...
Similar to #607 . According to the Catalyst[1] docs it's possible to
specify a data structure that is supposed to be serialized when
requesting i.e. a JSON response.
[1] https://metacpan.org/pod/Catalyst::Controller::REST#status_ok
2019-02-14 01:22:48 +01:00
Samuel Dionne-Riel
9986053e73
Controllers: allows lazy tabs to return custom errors.
2018-12-01 13:40:41 -05:00
Antoine Eiche
0d2a2d8923
Add json output for the search API endpoint
...
This commit also add a test of this feature.
Note the search JSON output doesn't contain any jobs because they can
not be exported to JSON yet.
The JSON output on a search query matching a build looks like:
```
{
"builds": [
{
"buildoutputs": {
"out": {
"path": "/nix/store/wdag3pznrvqk01byk989irg7rq3q2a2c-job"
}
},
"finished": 0,
"releasename": null,
"starttime": null,
"project": "sample",
"buildproducts": {},
"timestamp": 1541007629,
"buildstatus": null,
"nixname": "job",
"drvpath": "/nix/store/n9zqndn7j7nyr6gg3bmxvw26cfmdwv2n-job.drv",
"job": "job",
"id": 1,
"stoptime": null,
"priority": 100,
"system": "x86_64-linux",
"jobsetevals": [
1
],
"jobset": "default",
"buildmetrics": {}
}
],
"projects": [],
"jobsets": [],
"buildsdrv": []
}
```
2018-11-01 09:31:15 +01:00
Rob Vermaas
879333fd3c
Make /api/push-github public for private Hydra instances. This makes it possible to use webhooks to trigger evaluations for private Hydra instances.
2018-06-14 17:23:01 +02:00
Eelco Dolstra
7ccec0900b
Fix links to steps in the machines page
2017-12-07 16:20:23 +01:00
Eelco Dolstra
e9670641ec
Distinguish build step states
...
The web interface now shows whether a build step is connecting,
copying inputs/outputs, building, etc.
2017-12-07 15:35:31 +01:00
Eelco Dolstra
bc60fccf78
Remove remaining references to store_mode etc.
2017-10-18 12:23:07 +02:00
Rob Vermaas
b645b03536
Fix string comparison
2017-09-25 11:54:55 +00:00
Rob Vermaas
2318baaade
Add 'readonly_ips' option, to allow readonly access for certain IPs when 'private' option is enabled.
2017-09-22 11:36:49 +00:00
Eelco Dolstra
fec895a642
hydra-server: Support logs in S3
2017-04-05 17:55:56 +02:00
Eelco Dolstra
d0ad3fd806
Revert "Remove the global channel"
...
This reverts commit 2f6c2f5622e18b39828528eea1470d78eaec2dc1.
This unintentionally also removed /all, which is actually somewhat
useful.
2016-12-06 14:25:09 +01:00
Eelco Dolstra
2f6c2f5622
Remove the global channel
...
It's useless and it makes it very easy to kill the server by fetching
/channel/latest/closure.
2016-11-17 18:17:02 +01:00
Eelco Dolstra
98e7e37832
hydra-server: Fix and simplify robots.txt
2016-11-17 18:13:57 +01:00
Eelco Dolstra
07decd6915
Also hide disabled projects on the overview page by default
2016-11-01 13:15:55 +01:00
Eelco Dolstra
ef711ce845
Handle Referer not having a trailing slash
...
Fixes #415 .
2016-11-01 11:00:59 +01:00
Eelco Dolstra
f7ff7f741b
Fix a couple of encoding issues
2016-10-24 16:49:11 +02:00
Eelco Dolstra
5d8fbc6ca1
Fix referer check
2016-10-21 17:56:34 +02:00
Eelco Dolstra
c928c41ee1
Add XSRF protection for POST requests
...
Some Hydra API requests were vulnerable to XSRF attacks, e.g. you
could have a form on another website using http://hydra/logout as the
form action. So we now require POST requests to come from the same
origin.
Reported by Hans-Christian Esperer.
2016-10-20 16:11:33 +02:00
Eelco Dolstra
bbe45ed844
Remove Persona support
...
Persona is no longer supported by Mozilla, so let's remove it.
2016-10-20 14:14:04 +02:00