Commit graph

4878 commits

Author SHA1 Message Date
598de6b91a
[CI/CD] Only push tags to Github on the second git push command. 2024-07-27 15:36:22 +02:00
20483524d1
Updated CHANGELOG. 2024-07-27 15:34:29 +02:00
9bbdfc1eb9
[CI/CD] Mirror also tags to Github. 2024-07-27 15:31:50 +02:00
4568b4659e
[CI/CD] grep the version out of version.py.
Instead of running `python setup.py --version`.

That's because earlier versions of Python that don't fully support
dynamic version specifications through `pyproject.toml` may just return
`0.0.0` here.
2024-07-27 15:29:08 +02:00
54c2264403
license is not required in pyproject.toml if it's already specified in classifiers. 2024-07-27 15:18:47 +02:00
52d92da907
Upgraded license date. 2024-07-27 15:12:45 +02:00
88cc18de92
Replaced remaining setup.py references in the code with pyproject.toml. 2024-07-27 15:12:19 +02:00
fb99eefe40
Bump version: 1.1.3 → 1.2.0 2024-07-27 14:43:16 +02:00
ba390ab2f3
[Automatic] Updated components cache 2024-07-27 12:41:32 +00:00
6053a80796
Added backend /login and /register routes.
These are required for clients that don't have JS enabled and will get a
404 otherwise.

The routes simply render `index.html`, which will be empty if JS is
disabled and will redirect to the appropriate login/registration Vue
route if the user isn't logged in.
2024-07-27 14:39:09 +02:00
ccc778e056
Setting optional-dependencies as dynamic in pyproject.toml. 2024-07-27 14:15:01 +02:00
e10f1d7e1b
[Automatic] Updated components cache 2024-07-27 12:09:07 +00:00
de96b4ea17
Migrated project setup to pyproject.toml. 2024-07-27 14:06:53 +02:00
92fe119cff
Removed psutil as a required pip dependency.
Moved to optional dependencies for `system` plugin.

It requires gcc, linux-headers and python-dev to be installed on the
system.

The `python-psutil` system package however will still be installed when
Platypush is installed through a package manager.
2024-07-27 14:02:53 +02:00
f809ce0cb0
Apparently the version variable needs to always be named __version__.
Otherwise bump-my-version gets confused.
2024-07-27 12:13:40 +02:00
0963cd3d55
Moving around the __version__ string to get bumpversion to work again. 2024-07-27 12:12:07 +02:00
a70f151e28
[Fix] Version should be explicitly defined in setup.cfg (for now).
Importing `platypush.__version__` also imports the `platypush` base
package, which in turns depends on at least `pyyaml` being already
installed on the system.
2024-07-27 11:56:23 +02:00
b71612cb2f
[core] Moved __version__ string to its own package.
It reduces the duplication of `__version__`, which before was defined
on:

- `setup.py`
- `setup.cfg`
- `platypush/__init__.py`
2024-07-27 11:46:18 +02:00
dfe0092857
Updated CHANGELOG 2024-07-27 11:35:09 +02:00
90736f8ffb
[Automatic] Updated UI files 2024-07-26 23:58:32 +00:00
6cd342e1f4
[UI] Quickfix: Remove margin from default input style. 2024-07-27 01:55:46 +02:00
e234210fb5
[Automatic] Updated UI files 2024-07-26 23:46:57 +00:00
179c8265cf
[#419] Added ability to view and remove API tokens. 2024-07-27 01:43:18 +02:00
c13623c3f7
[#419] API tokens - frontend implementation. 2024-07-26 21:59:14 +02:00
a8343cb45b
[UI] Persist current settings page on the URL. 2024-07-26 17:37:25 +02:00
91f6beb349
[#419] API tokens - backend implementation. 2024-07-26 02:29:40 +02:00
683ffa98c1
[Automatic] Updated UI files 2024-07-25 00:45:14 +00:00
6b5dbe7c1e
[#339] Frontend implementation of the new 2FA logic.
Closes: #339
2024-07-25 02:43:15 +02:00
7351a2685a
[Automatic] Updated components cache 2024-07-25 00:24:25 +00:00
79dc5e238d
[core] Skip 2FA code verification for JWT tokens. 2024-07-25 02:23:07 +02:00
a11f17aa8f
[core] Encrypt users 2FA backup codes with bcrypt.
Instead of RSA - decrypting is unnecessary.
2024-07-25 02:23:07 +02:00
67d8d0a515
[Automatic] Updated components cache 2024-07-24 22:48:49 +00:00
8ec1ca8543
[#339] Backend preparation for 2FA support. 2024-07-25 00:47:04 +02:00
2cbb005c67
[core] The generation of RSA keys should be behind shared process locks. 2024-07-25 00:38:30 +02:00
cf813e4197
[Automatic] Updated UI files 2024-07-24 19:36:47 +00:00
b1b51b4b7e
[tests] Fixed tests after HTTP auth refactor. 2024-07-24 21:34:30 +02:00
70db33b4e2
[core] Better Redis connection fail handling logic.
If the connection to Redis goes down, it shouldn't take down the main
thread.

Instead, catch `RedisConnectionError`, and execute `poll` in a loop
until the connection is restored.
2024-07-24 21:33:04 +02:00
357d92b479
[core] Added current_user() HTTP utility. 2024-07-24 00:49:21 +02:00
2033f9760a
[core] Refactoring user/authentication layer.
- Separated the user model/db classes from the `UserManager`.
- More consistent naming for the flag on the `authenticate_*` functions
  that enables returning a tuple with the authentication status - all
  those flags are now named `with_status`.
2024-07-23 22:44:40 +02:00
ee27b2c4c6
[core] Refactored Web login/registration layer.
Instead of having a single Flask-provided endpoint, the UI should
initialize its own Vue component and manage the authentication
asynchronously over API.

This is especially a requirement for the implementation of 2FA.

The following routes have also been merged/refactored:

- `POST /register` -> `POST /auth?type=register`
- `POST /login` -> `POST /auth?type=login`
- `POST /auth` -> `POST /auth?type=jwt`
2024-07-23 02:08:25 +02:00
8904e40f9f
[UI] Redirect URIs should always be relative to the current host. 2024-07-23 02:08:25 +02:00
fe2497577d
[Automatic] Updated UI files 2024-07-21 19:34:57 +00:00
01aedb5568
[UI] DropdownItem should emit @input together with @click.
The propagation of the `click` event shouldn't be stopped, as it is
required for the upstream Dropdown event to understand if it needs to
close.

Components should instead listen to `@input` events, so disabled items
will not be triggered.
2024-07-21 21:32:54 +02:00
2ccf00508d
[qrcode] Allow binary content for qrcode.generate. 2024-07-21 21:32:54 +02:00
8329de15ba
[UI] Added extra showError condition on /execute. 2024-07-21 21:32:53 +02:00
c1b1bd6c50
[UI] Added generic .text-danger class. 2024-07-21 21:32:49 +02:00
snyk-bot
9a388afd1d
fix: requirements.txt to reduce vulnerabilities
The following vulnerabilities are fixed by pinning transitive dependencies:
- https://snyk.io/vuln/SNYK-PYTHON-ZIPP-7430899
2024-07-21 06:17:05 +00:00
snyk-bot
f63dd68043
fix: upgrade axios from 1.7.1 to 1.7.2
Snyk has created this PR to upgrade axios from 1.7.1 to 1.7.2.

See this package in npm:
axios

See this project in Snyk:
https://app.snyk.io/org/blacklight/project/96bfd125-5816-4d9e-83c6-94d1569ab0f1?utm_source=github&utm_medium=referral&page=upgrade-pr
2024-07-21 05:54:36 +00:00
snyk-bot
40c5a69a57
fix: upgrade vue from 3.4.29 to 3.4.31
Snyk has created this PR to upgrade vue from 3.4.29 to 3.4.31.

See this package in npm:
vue

See this project in Snyk:
https://app.snyk.io/org/blacklight/project/96bfd125-5816-4d9e-83c6-94d1569ab0f1?utm_source=github&utm_medium=referral&page=upgrade-pr
2024-07-21 05:54:32 +00:00
snyk-bot
5070b4dad5
fix: upgrade sass from 1.77.3 to 1.77.6
Snyk has created this PR to upgrade sass from 1.77.3 to 1.77.6.

See this package in npm:
sass

See this project in Snyk:
https://app.snyk.io/org/blacklight/project/96bfd125-5816-4d9e-83c6-94d1569ab0f1?utm_source=github&utm_medium=referral&page=upgrade-pr
2024-07-21 05:54:29 +00:00