Commit Graph
203 Commits
Author SHA1 Message Date
MichaelandGitHub bb8828c86f Address late review on auth (#108852) 2024-01-25 18:15:35 +01:00
f5d439799b Add expiration of unused refresh tokens (#108428)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-01-24 13:24:22 -10:00
J. Nick KostonandGitHub 2eea658fd8 Convert getting and removing access tokens to normal functions (#108670) 2024-01-22 20:51:33 -10:00
J. Nick KostonandGitHub 7c86ab14c3 Refactor service enumeration methods to better match existing use cases (#108671) 2024-01-22 14:21:17 -10:00
J. Nick KostonandGitHub 740209912c Small performance improvements to handing revoke token callbacks (#108625)
- Use a set to avoid linear search for remove
- Avoid recreating the unregister function each time
2024-01-21 22:49:06 -05:00
J. Nick KostonandGitHub ec15b0def2 Always load auth storage at startup (#108543) 2024-01-20 16:16:43 -10:00
J. Nick KostonandGitHub 3c6e7b188e Remove OrderedDict from auth_store (#108546)
normal dicts keep track of insert order now so this should
no longer be needed
2024-01-20 20:36:43 -05:00
J. Nick KostonandGitHub b1d0c6a4f1 Refactor User attribute caching to be safer and more efficient (#96723)
* Cache construction of is_admin

This has to be checked for a lot of api calls and the websocket
every time the call is made

* Cache construction of is_admin

This has to be checked for a lot of api calls and the websocket
every time the call is made

* Cache construction of is_admin

This has to be checked for a lot of api calls and the websocket
every time the call is made

* modernize

* coverage

* coverage

* verify caching

* verify caching

* fix type

* fix mocking
2024-01-13 15:10:50 -05:00
706add4a57 Switch formatting from black to ruff-format (#102893)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-11-27 14:38:59 +01:00
cf9b0e804f Deprecate legacy api auth provider (#104409)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-11-27 14:16:18 +01:00
852fb58ca8 Extend auth/providers endpoint and add /api/person/list endpoint for local ip requests (#103906)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-11-24 17:11:54 +01:00
65a2f5bcd5 Support for group into command_line auth provider (#92906)
Co-authored-by: Franck Nijhof <git@frenck.dev>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2023-11-24 13:19:25 +01:00
J. Nick KostonandGitHub 1a6184a9aa Allow non-admins to subscribe to the issue registry updated event (#103145) 2023-10-31 16:29:22 -05:00
J. Nick KostonandGitHub 93f10cdce8 Move event permissions out of the websocket api into auth (#101975) 2023-10-15 23:14:19 +02:00
J. Nick KostonandGitHub 2dfc8b9d7f Avoid conversion of timestamps in jwt auth (#101856) 2023-10-13 14:11:17 +02:00
Marc MuellerandGitHub 0b2b486754 Update mypy to 1.6.0 (#101780) 2023-10-11 13:25:11 +02:00
Franck NijhofandGitHub c3936e6f14 Replace isort with ruff (#94302) 2023-06-08 23:43:56 +02:00
Patrick LiandGitHub 46103f56c4 Fix trusted_users group schema (#92847)
* Fix trusted_users group schema

* Add tests for CONFIG_SCHEMA
2023-05-23 20:11:25 +02:00
J. Nick KostonandGitHub 32b70ea133 Bump PyJWT to 2.7.0 (#93128) 2023-05-16 10:26:04 +02:00
J. Nick KostonandGitHub ca576d45ac Cache decode of JWT tokens (#90013) 2023-03-22 16:03:41 -10:00
epenetandGitHub f2b736fad0 Adjust entity registry access in core platforms (#88944)
* Adjust entity registry access in platforms

* Adjust more core components
2023-03-01 08:02:16 +01:00
J. Nick KostonandGitHub 03eea7bd3f Avoid subprocess memory copy when c library supports posix_spawn (#87958)
* use posix spawn on alpine

* Avoid subprocess memory copy when c library supports posix_spawn

By default python 3.10 will use the fork() which has to
copy all the memory of the parent process (in our case
this can be huge since Home Assistant core can use
hundreds of megabytes of RAM). By using posix_spawn
this is avoided.

In python 3.11 vfork will also be available
https://github.com/python/cpython/issues/80004#issuecomment-1093810689
https://github.com/python/cpython/pull/11671 but we won't
always be able to use it and posix_spawn is considered safer
https://bugzilla.kernel.org/show_bug.cgi?id=215813#c14

The subprocess library doesn't know about musl though
even though it supports posix_spawn https://git.musl-libc.org/cgit/musl/log/src/process/posix_spawn.c
so we have to teach it since it only has checks for glibc
https://github.com/python/cpython/blob/1b736838e6ae1b4ef42cdd27c2708face908f92c/Lib/subprocess.py#L745

The constant is documented as being able to be flipped here:
https://docs.python.org/3/library/subprocess.html#disabling-use-of-vfork-or-posix-spawn

* Avoid subprocess memory copy when c library supports posix_spawn

By default python 3.10 will use the fork() which has to
copy memory of the parent process (in our case
this can be huge since Home Assistant core can use
hundreds of megabytes of RAM). By using posix_spawn
this is avoided and subprocess creation does not
get discernibly slow the larger the Home Assistant
python process grows.

In python 3.11 vfork will also be available
https://github.com/python/cpython/issues/80004#issuecomment-1093810689
https://github.com/python/cpython/pull/11671 but we won't
always be able to use it and posix_spawn is considered safer
https://bugzilla.kernel.org/show_bug.cgi?id=215813#c14

The subprocess library doesn't know about musl though
even though it supports posix_spawn https://git.musl-libc.org/cgit/musl/log/src/process/posix_spawn.c
so we have to teach it since it only has checks for glibc
https://github.com/python/cpython/blob/1b736838e6ae1b4ef42cdd27c2708face908f92c/Lib/subprocess.py#L745

The constant is documented as being able to be flipped here:
https://docs.python.org/3/library/subprocess.html#disabling-use-of-vfork-or-posix-spawn

* missed some

* adjust more tests

* coverage
2023-02-13 09:02:51 -05:00
Franck NijhofandGitHub ca1a12898c Enable Ruff D212 (#87347) 2023-02-03 23:08:48 +01:00
6397138589 Update Optional typing (1) [Py310] (#86417)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-01-23 09:56:10 +01:00
Marc MuellerandGitHub 8abce25948 Update Union typing (4) [Py310] (#86427) 2023-01-23 09:04:40 +01:00
Franck NijhofandGitHub 64c2340fab Core code styling improvements (#85963) 2023-01-15 23:00:51 +01:00
b0cee0bc46 String formatting and max line length - Part 1 (#84390)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-12-22 10:12:50 +01:00
Franck NijhofandGitHub 73a43bfd1d Update pyotp to 2.8.0 (#84339) 2022-12-21 11:53:02 +01:00
Erik MontnemeryandGitHub bf4c399b19 Improve data entry flow typing (#84030) 2022-12-15 12:41:20 +01:00
Erik MontnemeryandGitHub 22b4c445a0 Drop title from auth flows (#83628) 2022-12-12 10:53:28 +01:00
Aarni KoskelaandGitHub 8038485ca4 Use partition instead of split where possible in core (#81806) 2022-11-15 21:45:48 +01:00
Marc MuellerandGitHub 0c8eeaa643 Update mypy to 0.990 (#81783)
* Update mypy to 0.990

* Remove type ignore - overriding attr with property (13475)

* Remove type ignores - hasattr (13544)

* Adjust type ignore - assignment (13549)

* New error code - type-abstract (13785)

* Disable annotation-unchecked (13851)
2022-11-08 14:41:39 +01:00
Franck NijhofandGitHub cf138c7266 Update pyotp to 2.7.0 (#78500) 2022-09-15 11:53:16 +02:00
Marc MuellerandGitHub af7df260a0 Fix small type issues [core] (#75760) 2022-07-26 16:28:22 +02:00
epenetandGitHub 16900dcef1 Make Store a generic class (#74617) 2022-07-09 22:32:57 +02:00
J. Nick KostonandGitHub 211e5432ac Add EVENT_USER_UPDATED (#71965) 2022-06-09 20:49:02 -07:00
epenetandGitHub f91aa33c5f Add FlowResultType enum to data entry flow (#72955) 2022-06-07 22:02:44 -07:00
epenetandGitHub 627d6f7803 Ensure description_placeholders is always typed (#72716) 2022-05-31 10:33:34 +02:00
Franck NijhofandGitHub 5f44d0f8f9 Clean up accessing storage.Store helper via hass (#72009) 2022-05-17 18:45:57 +02:00
Franck NijhofandGitHub 69cc6ab5f1 Clean up accessing entity_registry.async_get_registry helper via hass (#72005) 2022-05-17 16:40:45 +02:00
Marc MuellerandGitHub 9b9b553521 Disable no-self-use [pylint] (#70641)
* Disable no-self-use

* Remove disable comments
2022-04-25 07:41:01 -07:00
Marc MuellerandGitHub ec980a574b Improve typing [util.decorator] (#67087) 2022-02-23 20:58:42 +01:00
Marc MuellerandGitHub 1ad023a63f Add type ignore error codes [auth] (#66774) 2022-02-18 23:29:56 +01:00
Marc MuellerandGitHub 9c5e0fc5e0 Fix auth type comment (#66522) 2022-02-14 20:10:18 +01:00
Marc MuellerandGitHub 5e633498d2 Enable no_implicit_reexport for core files [mypy] (#63820) 2022-01-26 10:55:06 +01:00
Marc MuellerandGitHub 12757a8cd2 Update typing - collections.abc (1) (#63933)
* Update typing - collections.abc (1)

* Additional typing updates
2022-01-12 07:56:35 +01:00
Marc MuellerandGitHub 240c9979c7 Move disallow-any-generics to mypy.ini (#63917) 2022-01-11 13:33:25 -08:00
Marc MuellerandGitHub d3b7bd25ef Update typing (1) (#63922) 2022-01-11 21:26:03 +01:00
Marc MuellerandGitHub 021debb5c5 Resolve implicit imports (#63832) 2022-01-10 17:10:46 +01:00
2c904c0974 Bump mypy to 0.930 (#62642)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2021-12-27 17:55:17 +01:00