95 lines
2.3 KiB
Markdown
95 lines
2.3 KiB
Markdown
# TeleSec
|
|
Nuevo programa de datos
|
|
|
|
## Python SDK (CouchDB directo)
|
|
|
|
Se añadió un SDK Python en `python_sdk/` para acceder directamente a CouchDB (sin replicación local), compatible con el formato de cifrado de `TS_encrypt`:
|
|
|
|
- Formato: `RSA{...}`
|
|
- Algoritmo: `CryptoJS.AES.encrypt(payload, secret)` (modo passphrase/OpenSSL)
|
|
|
|
### Instalación
|
|
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
### Uso rápido
|
|
|
|
```python
|
|
from python_sdk import TeleSecCouchDB
|
|
|
|
db = TeleSecCouchDB(
|
|
server_url="https://tu-couchdb",
|
|
dbname="telesec",
|
|
username="usuario",
|
|
password="clave",
|
|
secret="SECRET123",
|
|
)
|
|
|
|
# Guardar cifrado (como TS_encrypt)
|
|
db.put("personas", "abc123", {"nombre": "Ana"}, encrypt=True)
|
|
|
|
# Leer y descifrar
|
|
obj = db.get("personas", "abc123", decrypt=True)
|
|
|
|
# Listar una tabla
|
|
rows = db.list("personas", decrypt=True)
|
|
for row in rows:
|
|
print(row.id, row.data)
|
|
```
|
|
|
|
API principal:
|
|
|
|
- `TeleSecCouchDB.put(table, item_id, data, encrypt=True)`
|
|
- `TeleSecCouchDB.get(table, item_id, decrypt=True)`
|
|
- `TeleSecCouchDB.list(table, decrypt=True)`
|
|
- `TeleSecCouchDB.delete(table, item_id)`
|
|
- `ts_encrypt(value, secret)` / `ts_decrypt(value, secret)`
|
|
|
|
## Agente Windows (Gest-Aula > Ordenadores)
|
|
|
|
Se añadió soporte para control de ordenadores del aula:
|
|
|
|
- Tabla: `aulas_ordenadores`
|
|
- Campos reportados por agente: `Hostname`, `UsuarioActual`, `AppActualEjecutable`, `AppActualTitulo`, `LastSeenAt`
|
|
- Control remoto: `ShutdownBeforeDate` (programado desde web a `hora_servidor + 2 minutos`)
|
|
|
|
### Ejecutar agente en Windows
|
|
|
|
El agente usa un archivo de configuración en la carpeta personal del usuario:
|
|
|
|
- Ruta por defecto: `~/.telesec/windows_agent.json`
|
|
- Se crea automáticamente si no existe
|
|
|
|
```bash
|
|
python -m python_sdk.windows_agent --once
|
|
```
|
|
|
|
Ejemplo del JSON de configuración:
|
|
|
|
```json
|
|
{
|
|
"server": "https://tu-couchdb",
|
|
"db": "telesec",
|
|
"user": "usuario",
|
|
"password": "clave",
|
|
"secret": "SECRET123",
|
|
"machine_id": "",
|
|
"interval": 15
|
|
}
|
|
```
|
|
|
|
También puedes sobrescribir valores por CLI (`--server`, `--secret`, etc.).
|
|
|
|
Opciones útiles:
|
|
|
|
- `--once`: una sola iteración
|
|
- `--interval 15`: intervalo (segundos)
|
|
- `--dry-run`: no apaga realmente, solo simula
|
|
- `--config <ruta>`: ruta alternativa del archivo JSON
|
|
|
|
### Hora de servidor (sin depender del reloj local)
|
|
|
|
El frontend y el agente usan la hora del servidor (cabecera HTTP `Date` de CouchDB) para comparar `ShutdownBeforeDate`.
|