[release] 0.6.10
- Add "x-out" field in HTTP headers when "out" parameters are specified for a route - Add "out" kwarg for not-async functions that specify it - Hide data fields in args_check logs - Fix testing lib for domains (add default secret and debug option) - Domains now need to include the following variables in their __init__.py - __name__ (str, optional) - __id__ (str, optional) - halfapi domain - Mounts domain routers with their ACLs as decorator - Configuration example files for systemd and a system-wide halfapi install - Runs projects - Handles JWT authentication middleware
This commit is contained in:
parent
84179743a6
commit
f7879c6388
|
@ -1,5 +1,11 @@
|
|||
# HalfAPI
|
||||
|
||||
## 0.6.10
|
||||
|
||||
- Add "x-out" field in HTTP headers when "out" parameters are specified for a
|
||||
route
|
||||
- Add "out" kwarg for not-async functions that specify it
|
||||
|
||||
## 0.6.9
|
||||
|
||||
- Hide data fields in args_check logs
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#!/usr/bin/env python3
|
||||
__version__ = '0.6.9'
|
||||
__version__ = '0.6.10'
|
||||
|
||||
def version():
|
||||
return f'HalfAPI version:{__version__}'
|
||||
|
|
|
@ -85,6 +85,8 @@ class HalfRoute(Route):
|
|||
'Args for current route (%s)', param.get('args'))
|
||||
|
||||
|
||||
if 'out' in param:
|
||||
req.scope['out'] = param['out'].copy()
|
||||
|
||||
if 'check' in req.query_params:
|
||||
return PlainTextResponse(param['acl'].__name__)
|
||||
|
|
|
@ -94,6 +94,9 @@ def args_check(fct):
|
|||
|
||||
kwargs['data'] = data
|
||||
|
||||
if req.scope.get('out'):
|
||||
kwargs['out'] = req.scope.get('out').copy()
|
||||
|
||||
return await fct(req, *args, **kwargs)
|
||||
|
||||
return caller
|
||||
|
|
|
@ -64,6 +64,10 @@ def route_decorator(fct: FunctionType, ret_type: str = 'json') -> Coroutine:
|
|||
if 'data' in fct_args_spec:
|
||||
fct_args['data'] = kwargs.get('data')
|
||||
|
||||
if 'out' in fct_args_spec:
|
||||
fct_args['out'] = kwargs.get('out')
|
||||
|
||||
|
||||
""" If format argument is specified (either by get or by post param)
|
||||
"""
|
||||
ret_type = fct_args.get('data', {}).get('format', 'json')
|
||||
|
|
|
@ -56,6 +56,11 @@ class DomainMiddleware(BaseHTTPMiddleware):
|
|||
response.headers['x-args-optional'] = \
|
||||
','.join(request.scope['args']['optional'])
|
||||
|
||||
if len(request.scope.get('out', set())):
|
||||
response.headers['x-out'] = \
|
||||
','.join(request.scope['out'])
|
||||
|
||||
|
||||
response.headers['x-domain'] = self.domain['name']
|
||||
|
||||
return response
|
||||
|
|
Loading…
Reference in New Issue