Commit Graph

102 Commits

Author SHA1 Message Date
ded896ee1b gracefully terminate web server
In previous revisions server was terminated by itself, thus no lock or
socket was removed. In new version, graceful termination of the queue
has been added as well as server now handles singals
2023-03-06 01:13:41 +02:00
a93f43dcd0 simplify login ttl processing 2023-02-24 16:52:55 +02:00
cbcfff27b8 add ability to read cookie secret from config 2023-02-22 18:47:56 +02:00
e368396653 make oauth client trully optional (#84)
Same old song, after migraiton to packages some optional modules are
being imported globally which lead to making hard dependency
2023-01-25 15:25:42 +02:00
ef6cf0f00b review unsafe commands access
Some commands were made unsafe in old versions, but nowadays they can be
run without having special privileges.

There was also a bug in which status commands were not available if you
are not ahriman user and unix socket is used. It has been fixed by
switching to manual socket creation (see also
https://github.com/aio-libs/aiohttp/issues/4155)
2023-01-04 17:45:44 +02:00
83e9d7c523 write patches via gitremote push trigger (#79)
* write patches via gitremote push trigger

* implement context variables intead of custom database class
2022-12-25 02:10:38 +03:00
90be3276dd improve wording in documentation 2022-12-02 15:45:01 +02:00
fe66c6c45c implement support of unix socket for server
This feature can be used for unauthorized access to apis - e.g. for
reporting service if it is run on the same machine. Since now it becomes
recommended way for the interprocess communication, thus some options
(e.g. creating user with as-service flag) are no longer available now
2022-12-02 01:41:23 +02:00
41cc58ed31 add rebuild implementation to interface 2022-12-02 01:41:23 +02:00
9fa1fa108f add key-import button to interface 2022-12-02 01:41:23 +02:00
4462eba860 render httpunauthorized as html in plain http requests 2022-11-22 23:40:27 +02:00
14cb548c3b Extended package status page (#76)
* implement log storage at backend
* handle process id during removal. During one process we can write logs from different packages in different times (e.g. check and update later) and we would like to store all logs belong to the same process
* set package context in main functions
* implement logs support in interface
* filter out logs posting http logs
* add timestamp to log records
* hide getting logs under reporter permission

List of breaking changes:

* `ahriman.core.lazy_logging.LazyLogging` has been renamed to `ahriman.core.log.LazyLogging`
* `ahriman.core.configuration.Configuration.from_path` does not have `quiet` attribute now
* `ahriman.core.configuration.Configuration` class does not have `load_logging` method now
* `ahriman.core.status.client.Client.load` requires `report` argument now
2022-11-22 02:58:22 +03:00
b75bd30658 replace several store_true keys to booleanoptionalaction alternative (#74) 2022-11-10 18:34:01 +03:00
09678a3ae1 add possibility to run full update
In case if packages are not set from web, the spawner will run full
repository update
2022-10-31 02:41:24 +02:00
1ea3911531 rewrite api under single /api endpoint 2022-05-29 17:15:49 +03:00
b1dfafe275 dynamic html load (#63)
* dynamic html load
* split by classes
2022-05-20 22:29:36 +03:00
7f87863734 shorten public imports 2022-05-06 04:08:05 +03:00
571f720ae2 Complete official repository support (#59) 2022-05-03 00:49:32 +03:00
4daff81d5f Docstring update (#58)
* migrate docstrings from reST to google format

* add raises note

Also change behaviour of the `from_option` method to fallback to
disabled instead of raising exception on unknown option

* fix part of warnings for sphinx

* make identation a bit more readable

* review fixes

* add verbose description for properties to make them parsed by sphinx extenstion

* add demo sphinx generator
2022-04-17 20:25:28 +03:00
9ce1c36f35 add support of officiall repositories api 2022-04-07 04:19:37 +03:00
83931f5cf4 port part of settings to database (#54) 2022-03-31 01:48:06 +03:00
9964a96296 strict test checks 2022-03-04 02:04:52 +03:00
f9b1d89756 update for new aiohttp api 2022-02-06 04:05:33 +03:00
9197b416e6 use own aur wrapper (#49) 2022-02-06 03:44:57 +03:00
0a8b172e9c unify aur.search method
due to specific of the AUR API in order to reduce the code we are using
own wrapper and work with it instead of direct library calls
2021-10-26 04:49:55 +03:00
d8523bd83b always return json in responses 2021-10-20 02:12:39 +03:00
233b1f7f39 disallow to create tree in case of unsafe run 2021-10-14 04:53:09 +03:00
86bd49ed1b exactly one called with instead of last call check 2021-10-14 03:12:45 +03:00
e897e2cde2 do not write anything on httpexceptions in log 2021-10-03 02:05:28 +03:00
6be6614e6d add package request endpoint 2021-10-01 08:58:50 +03:00
d60c553ea2 add debugtoolbar support 2021-09-26 12:31:12 +03:00
266d2bd77d define permissions in views directly 2021-09-25 17:03:46 +03:00
57f45fdc89 better reload 2021-09-17 19:15:53 +03:00
6d1f641e50 add ability to reload authentication module 2021-09-17 16:05:38 +03:00
68aa327670 expiration on server side support (#33) 2021-09-13 01:18:04 +03:00
41c8f4c35f return description from the search 2021-09-12 22:31:34 +03:00
168b2f6880 OAuth2 (#32)
* make auth method asyncs

* oauth2 demo support

* full coverage

* update docs
2021-09-12 21:41:38 +03:00
5bb244cbe8 add static files support and cookie expiration settings 2021-09-11 16:34:43 +03:00
11c03a9041 Add ability to trigger updates from the web (#31)
* add external process spawner and update test cases

* pass no_report to handlers

* provide service api endpoints

* do not spawn process for single architecture run

* pass no report to handlers

* make _call method of handlers public and also simplify process spawn

* move update under add

* implement actions from web page

* clear logging & improve l&f
2021-09-10 00:33:35 +03:00
214f319123 add option to set user-password for service when updating its hash 2021-09-05 15:40:03 +03:00
cfbc9d3267 move api endpoints to status-api 2021-09-05 06:46:14 +03:00
b7cff0a19d Auth support (#25)
* initial auth implementation

* add create user parser

* add tests

* update dependencies list

* add login annd logout to index also improve auth

* realworld fixes

* add method set_option to Configuration and also use it everywhere
* split CreateUser handler to additional read method
* check user duplicate on auth mapping read
* generate salt by using passlib instead of random.choice
* case-insensetive usernames
* update dependencies
* update configuration reference
* improve tests

* fix codefactor errors

* hide fields if authorization is enabled, but no auth supplied

* add settings object for auth provider

* readme update
2021-09-02 23:36:00 +03:00
8f55cc600e add manpage generator 2021-08-17 04:05:18 +03:00
d3a00e1937 use asyncmock from unittest library 2021-08-11 21:09:10 +03:00
47c4e5bb42 move web server to loopback by default 2021-08-11 02:02:18 +03:00
d548fa02f0 add docstrings for every fixture and test methods
also add tests for missing components
2021-08-11 01:55:27 +03:00
33cfa8fef8 Feature/all archs (#21)
* add init subcommand

* add also init command to repository object

* add ability to generate list of architectures

* check if architecture list is not empty
2021-05-23 16:40:40 +03:00
213b2c65a0 Add web status route (#13)
* add status route

* typed status and get status at the start of application
2021-04-08 01:48:53 +03:00
1785b0470f more options in setup command 2021-04-04 15:42:06 +03:00
207da4caa7 100% coverage 2021-04-03 21:30:57 +03:00