Metadata-Version: 2.1
Name: nwebclient
Version: 1.0.323
Summary: NWebClient via HTTP
Home-page: https://bsnx.net/4.0/group/pynwebclient
Author: Bjoern Salgert
Author-email: bjoern.salgert@hs-duesseldorf.de
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
Provides-Extra: server
License-File: LICENSE

# NWeb Client 

Client to access the NWeb-API


## Installation
```
pip install --upgrade nwebclient

# oder

pip install .

```

```
python -m nwebclient help
```

More [Documentation](https://gitlab.com/bsalgert/nwebclient/-/wikis/home)

### Docker

```
docker run --rm -it -p 7171:7070 -e PIP_PKGS=/parent/home/pi/dev/nxbot -v /:/parent/ nxware/nxdev npy serv --install
```


## Beispiel
```
import nwebclient
```


```
class NWebClient
  """ Anstatt url kann auch ein Pfad zur einer JSON-Datei, die die Schluessel enthaelt, angegeben werden. """
  __init__(url, username,password)
  doc(id)
  docs(q)
  group(id)
  getOrCreateGroup(guid, title)
  downloadImages()

metric_val(endpointUrl:string, metricName:string, val:numeric)
```


## Secure Web Interface

Das Webinterface des Runners (`--rest`) kann per HTTP Basic Auth mit einem Passwort geschützt werden.
Die Einstellungen werden in der Config gesetzt, z.B. in `/etc/nweb.yml` oder einer Datei in `/etc/nx.d/`:

```yaml
web_secured: true
web_user: admin            # optional, Default: admin
web_password_hash: "scrypt:32768:8:1$..."
```

Passwort-Hash erzeugen:

```
python -c "from werkzeug.security import generate_password_hash as g; print(g('geheim'))"
```

Hinweise:

- Ohne `web_secured` (oder mit `false`) bleibt das Webinterface offen.
- Ist `web_secured` gesetzt, aber kein `web_password_hash` vorhanden, wird jeder Zugriff abgelehnt.
- Ohne Passwort erreichbar bleibt nur `/nxname` (`JobRunner.public_routes`).
- Auch der Job-Endpoint `/` ist geschützt. Clients, die Jobs per REST senden (z.B. `ProxyRunner`), müssen die Zugangsdaten mitschicken.
- Der Ticker-Webserver (`nwebclient.ticker`) ist nicht geschützt.
- Der Server läuft über HTTP, das Passwort wird also unverschlüsselt übertragen. Außerhalb des LANs einen Reverse-Proxy mit HTTPS (z.B. nginx, Caddy) vorschalten.


Links: [Gitlab-Repo](https://gitlab.com/bsalgert/nwebclient) [PyPi-Package](https://pypi.org/project/nwebclient/)

Git-URL: `git@gitlab.com:bsalgert/nwebclient.git`

---
Packaging: https://packaging.python.org/tutorials/packaging-projects/
