Cédric Krier
6ad744ff47
Add authentication services
...
issue11582
review417471003
2022-10-09 18:33:16 +02:00
Cédric Krier
9bcccacfb9
Add duration and truncate data in logging messages
...
issue11530
issue5228
review423311003
2022-07-17 23:52:44 +02:00
Cédric Krier
638f5505fa
Do not convert exceptions in HTTPException for RPC calls
...
issue11483
review423381003
2022-06-15 18:52:38 +02:00
Cédric Krier
96ea9b0af5
Unify logging exception in wrappers
...
Only with_pool is responsible to log exceptions.
Also it does not log UserError nor UserWarning but convert them as HTTP client
error.
issue11483
review435131003
2022-06-09 09:29:33 +02:00
Cédric Krier
cece7617b9
Do not log HTTPException in with_transaction
...
issue11482
review443091003
2022-05-19 22:00:57 +02:00
David Harper
b6e57422ec
Allow CORS on root path
...
issue10974
review379651002
2022-03-24 09:59:09 +00:00
Cédric Krier
56c18b8a1c
Protect against XML vulnerabilities
...
issue11219
issue11244
2022-03-01 19:07:56 +01:00
Cédric Krier
a0bfbfa255
Follow isort formatting
...
issue10928
2021-12-11 17:58:45 +01:00
Cédric Krier
357dfd9286
Use HTTPStatus instead of http.client
...
Status in http.client is deprecated since 3.5
2021-11-23 16:24:44 +01:00
Cédric Krier
9ae04f3e68
Use bigdecimal tag for XML-RPC
...
issue10734
review355491002
2021-09-23 10:22:01 +02:00
Cédric Krier
c4c3540201
Use biginteger for integer overflowing XML-RPC integer dumper
...
issue10732
review363891002
2021-09-19 00:04:57 +02:00
Cédric Krier
a47b7e5a70
Do not use authorisation for repr if it is None
...
issue10642
review342871005
2021-08-19 22:25:24 +02:00
Cédric Krier
5327972941
Make ImmutableDict dumpable by protocols
...
issue10599
review349001002
2021-07-22 19:06:15 +02:00
Sergi Almacellas Abellana
3108414aaa
Add support for werkzeug 2.0
...
issue10086
review337571002
2021-05-28 09:10:15 +02:00
Cédric Krier
05137a72a4
Add status command
...
issue10098
review347481002
2021-03-27 19:42:53 +01:00
Cédric Krier
b841ba8742
Add route wrapper to allow null origin
...
Webextensions may use 'null' as Origin if the browser considers that the
request is not trustworthy. To keep such webextensions working, we need to
allow such requests for that we add an attribute on the endpoint.
issue10058
review331931002
2021-03-07 10:01:20 +01:00
Cédric Krier
6d1bc282b7
Remove extra '/' in request path in logging messages
2021-01-10 23:41:24 +01:00
Cédric Krier
c6503c1a93
Add cached_property in tools
...
issue9277
review299951002
2020-06-17 00:33:30 +02:00
Cédric Krier
d7ed5f91f5
Fix flake8 errors and warnings
...
We add the flake8 configuration used so we ensure everyone uses the same.
We remove the usage of __all__ for non public API.
When possible, we rationalize the class name according to its __name__ and module.
issue9082
review297061002
2020-03-01 12:33:54 +01:00
Cédric Krier
03b07a60e9
Use more appropriate HTTP status for Tryton exceptions
...
issue8929
review252781002
2020-01-20 22:25:12 +01:00
Nicolas Évrard
8fb13634ea
Use direct access to backend classes
...
issue8836
review258421002
2019-12-06 17:33:47 +01:00
Cédric Krier
922c420fae
Return bad request for Tryton exception instead of internal error
...
Those exceptions are expected behavior so it is the fault of the client, not
the server.
issue8768
review276221002
2019-11-17 17:36:07 +01:00
Cédric Krier
0fbf5cecd2
Add cache management on RPC
...
issue8233
review257231002
2019-04-08 10:10:40 +02:00
Cédric Krier
ce0e68a287
Add HTML editor
...
issue8004
review54481002
2019-03-30 16:04:45 +01:00
Cédric Krier
51b857cc36
Simplify xmlrpc marshallers for Python3
...
issue8143
review45961002
2019-03-08 23:40:20 +01:00
Cédric Krier
0b6c923834
Add increasing delay on OperationalError
...
This increase the success rate of retry if the other transaction last.
issue8014
review50701002
2019-02-04 22:23:12 +01:00
Cédric Krier
88b1272d95
Return 429 TOO MANY REQUESTS on RateLimitException
...
This is a better HTTP Status than the default 500.
issue8001
review47751002
2019-02-04 22:19:37 +01:00
Cédric Krier
da24071467
Make Cache transactional
...
We implement sync, commit and rollback to follow transaction semantic.
When a transaction clears a cache, the global cache is cleared only when the
transaction is committed meanwhile the transaction will use a cache for itself
only.
We remove _nocache option because the sync, commit and rollback operate only
for the transaction.
issue7975
review53521002
2019-01-18 11:57:11 +01:00
Cédric Krier
cef6ffead0
Allow to redirect bus request
...
issue7943
review48691003
2019-01-18 11:01:22 +01:00
Cédric Krier
31dc11cf6d
Run tasks at this end of cron execution and with_transaction
...
issue7781
review68391002
2018-12-30 00:22:41 +01:00
Cédric Krier
e5bf50805d
Return XML-RPC answer only to XML-RPC request
...
This prevents to answer an XML-RPC fault to a request which only set xml as
accepted mimetype.
issue7913
review66481002
2018-12-30 00:21:39 +01:00
Cédric Krier
5a7aca31ea
Manage session with max_age and timeout
...
and clear session when password is changed.
The sessions are checked using on a fix maximum age of 30 days using the
create_date value. The write_date is updated as long as the delay of the last
update is not bigger than the session timeout.
RPC can request a fresh session. A fresh session is a session that was updated
last time before the session timeout. If it is not the case, the session is
deleted and a request to create a new session is sent to the client.
All the sessions of the users for which the password has been changed are also
deleted in order to ensure that stolen session can no more be used.
We use this new feature for set_preferences of user instead of duplicate the
login mechanism.
issue7568
review53331002
2018-08-26 18:04:05 +02:00
Cédric Krier
ae06a8bca2
Add transactional queue and workers
...
issue7406
review45461002
2018-07-27 09:32:28 +02:00
Cédric Krier
8d291af9d9
Fallback to import http.client if HTTPStatus is not present
...
HTTPStatus is available only since Python 3.5
2018-07-16 15:47:15 +02:00
Cédric Krier
45a5984a0e
Use HTTP status code
...
- FORBIDDEN for forbidden RPC and no database list
- UNAUTHORIZED for login failure
issue7565
review49511002
2018-07-16 14:47:05 +02:00
Cédric Krier
7f1b851962
Convert authorization key into string
...
The check method expect to receive a string for the key because it used for a
search against a Char field.
issue7546
review56291002
2018-07-02 23:22:09 +02:00
Cédric Krier
d2a461390a
Remove support for Python 2.7
...
issue7497
review53261002
2018-06-26 19:11:19 +02:00
Cédric Krier
e85a4891ac
Serve index.html for static directory
...
This allows to have shorter sao URL because it is without index.html.
Also this adds the support of static web root when launching WSGI app from a
different WSGI server.
issue6677
review45501002
2018-05-22 23:44:10 +02:00
Cédric Krier
0aed819d47
Add hostname configuration to list database
...
issue7375
review44991002
2018-05-22 23:42:35 +02:00
Cédric Krier
1a2f0edbbb
Add _request context to with_transaction wrapper
...
issue7444
review45151002
2018-05-22 23:38:36 +02:00
Cédric Krier
1c32a02b64
Simplify API for Session
...
- Allow to extend session management with a domain
- Let security manage the logging
- Let check differentiate expired session and session that does not exist
issue7134
review39171002
2018-03-07 00:34:09 +01:00
Cédric Krier
7388e7b233
Add '_request' attribute to Transaction context
...
issue7110
review41031002
2018-02-14 19:22:03 +01:00
Cédric Krier
5a1bc137a3
Add a maximum size for request
...
issue6619
review38441002
2017-09-03 11:32:17 +02:00
brunnenschacht
cb2d234230
Ensure the proper encoding for the authentication header response
...
issue6628
review36441002
2017-07-13 09:19:08 +02:00
Cédric Krier
1c92359998
Decode username only if it is bytes
...
The decoding is only needed on Python2 because bytes_to_wsgi returns always a
str but str on Python2 is not unicode.
issue6578
review41381002
2017-06-18 15:24:05 +02:00
Cédric Krier
d1a971fb61
Decode username before logging it
...
The username of request authorisation is bytes encoded in UTF-8.
The logging module tries to decode it as ASCII by default.
issue6517
review34991002
2017-05-30 22:07:46 +02:00
Cédric Krier
e7ff9ee619
Use compact separators to dump json
...
issue6373
review33991002
2017-03-23 22:51:36 +01:00
Cédric Krier
05972ae818
Add exception as description of internal error of user_application
...
issue6255
review29991002
2017-02-14 23:37:16 +01:00
Sergi Almacellas Abellana
5278085a98
Disable transaction cache for database list
...
issue6216
review31071002
2017-02-07 17:06:39 +01:00
Cédric Krier
cdc5952145
Manage Cache in Transaction
...
issue6216
review33021002
2017-02-02 12:04:27 +01:00