more stuff

This commit is contained in:
2026-08-21 08:45:36 +02:00
parent 5e506c9921
commit ad728ba96c
12 changed files with 1148 additions and 64 deletions

View File

@ -216,7 +216,6 @@ class ApiTokenCreateRequest(BaseModel):
class SshKeyCreateRequest(BaseModel):
label: str = Field(min_length=1, max_length=128)
owner_user_id: int | None = None
private_key_pem: str = Field(min_length=1, max_length=32_768)
public_key: str = Field(min_length=1, max_length=8192)
key_type: Literal["ed25519", "rsa-3072", "rsa-4096", "ca-cert"]
@ -234,7 +233,6 @@ class SshKeyCreateRequest(BaseModel):
class SshKeyUpdateRequest(BaseModel):
label: str | None = Field(default=None, min_length=1, max_length=128)
owner_user_id: int | None = None
# Wenn gesetzt, wird der Schluessel rotiert (neues Schluesselmaterial,
# rotated_at wird aktualisiert). Alle drei Felder muessen dann zusammen
# angegeben werden (siehe rotate_ssh_key() in admin/routes.py).
@ -263,3 +261,19 @@ class RdpCredentialsRequest(BaseModel):
# Migration 0010 Teil der Zugangsdaten statt des Hosts.
username: str | None = Field(default=None, max_length=128)
domain: str | None = Field(default=None, max_length=128)
class SshPasswordCredentialsRequest(BaseModel):
"""Alternative zum SSH-Key (Migration 0011): Passwort-Login fuer Linux-
Hosts, analog zu RdpCredentialsRequest. Nur wirksam, solange dem Host
KEIN SSH-Key zugeordnet ist -- ein zugeordneter Schluessel hat immer
Vorrang (siehe app/ssh_proxy/proxy.py::connect_to_host)."""
username: str = Field(min_length=1, max_length=128)
password: str = Field(min_length=1, max_length=512)
class SshKeyGenerateRequest(BaseModel):
"""Fuer den 'Schluessel automatisch generieren'-Button im Adminbereich --
erzeugt nur Schluesselmaterial, speichert nichts (siehe
POST /admin/ssh-keys/generate)."""
key_type: Literal["ed25519", "rsa-3072", "rsa-4096"]