Skip to content

qa: harden blacklist test process and runner boundaries #83

Open

Description

@dborup

Baggrund

Blacklist-QA'ens parameterbinding og schemafejl blev rettet og verificeret i PR #82. Under den fulde SSH/Docker-verifikation blev der fundet nogle eksisterende driftsmæssige svagheder uden for selve SQL-bindingens scope.

Opgave

  • Undgå at sende test-pubkeyen i procesargumenter i config-edit-SSH, curl-URL'er og lokale grep-kald. Pubkeyen er offentlig, men stdin/filer er et mere robust mønster og gør procesliste-kontrakten entydig.
  • Afklar eller fjern ADMIN_API_TOKEN-stien. Den kalder i dag /api/admin/transmissions?from_node=..., som ikke findes, og falder derfor altid videre til SQLite. Hvis API-stien bevares, skal den have en virkelig serverkontrakt og tests.
  • Adskil host- og containersti til SQLite-databasen. Den nuværende fælles TARGET_DB_PATH kan få hostens sqlite3 til at oprette en tom fil, hvis stien kun er gyldig i containeren.
  • Dæk SIGPIPE, når kun stderr-forbindelsen brydes, eller dokumentér eksplicit hvorfor det ikke understøttes.
  • Ret den upræcise formulering omkring RESTART_WAIT_S.
  • Tilføj shellcheck i den relevante lokale/CI-kontrol, hvis det kan gøres uden at ændre workflowets sikkerheds- eller deploysemantik.

Acceptkriterier

  1. Ingen pubkey, token eller SQL-payload findes i argv under en fuld isoleret kørsel.
  2. Admin-API-stien er enten fungerende og kontrakttestet eller fjernet med tydelig SQLite-only dokumentation.
  3. Host/container kan have forskellige DB-stier uden at oprette en utilsigtet tom database.
  4. Alle succes-, fejl-, signal- og teardown-forløb bevarer korrekt exit-status og gendanner config.
  5. Unit-, mutations- og fuld isoleret SSH/Docker-verifikation er grøn.

Hold denne opgave adskilt fra den allerede mergede schema- og parameterbindingsrettelse.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions